Monday, September 15, 2014

Zombie Connections

A zombie connection is a runaway SQL Anywhere database connection that doesn't go away after a DROP CONNECTION. You can keep executing DROP CONNECTION statements and they won't return an error, but the won't do anything. The connection isn't of any use to any client application but from SQL Anywhere's point of view it's still running... it is a zombie connection.

Here's what a zombie connection looks like in the Foxhound Monitor page...


Reading upwards from the bottom, here's what happened...

  • 8:57:55 AM The connection count (Parent/Child Conns) rose from 128 to 129 as "k.delacruz" started an ISQL session named "adhoc-queries".

  • 8:58:06 AM The "k.delacruz" connection became a runaway with this faulty cross join:
    SELECT a.*
      INTO #temp_inventory
      FROM inventory AS a,
           inventory AS b 
    

  • 8:58:41 AM Foxhound has issued Alerts #21 and #22 because "k.delacruz" was using up temporary file space at a great rate.

  • 8:59:26 AM Foxhound executed a DROP CONNECTION statement for the "k.delacruz" connection because of the temporary file usage.


  • 9:03:07 AM It's three and half minutes later and all the Alerts have been cleared, but the "k.delacruz" connection has become a zombie... SQL Anywhere is still busy freeing up all that temporary file and rollback log space.
In the next Foxhound sample (not shown here) the connection count dropped back to 128 as "k.delacruz" finally disappeared. The moral of the story is this: It's OK to kill runaway connections, but don't try to deal with zombie connections; let SQL Anywhere do that job. Even if you kill the server, SQL Anywhere will still have to finish applying the rollback log during recovery.




Thursday, September 11, 2014

Technical Summit Agenda, Hotel Details

The SQL Anywhere Technical Summit will be held in Waterloo from 9 AM Wednesday November 5 through 12:15 PM Friday November 7, 2014.

The travel and hotel details are here. There's an October 4 deadline on the special hotel rate, plus you might have to call to book, the online reservation system has a tendency to refuse requests, plus email confirmation messages "can take up to an hour" ( how is that possible in 2014? :)

Here's the agenda (subject to change)...

Wednesday November 5, 2014
 9:00 a.m. – 10:30 a.m. Introductions and SAP
10:30 a.m. – 10:45 a.m. Break
10:45 a.m. – 12:15 p.m. SQLA Performance and Tuning
12:15 p.m. –  1:30 p.m. Lunch (provided)
 1:30 p.m. –  3:30 p.m. SQLA New Feature Overview
 3:30 p.m. –  3:45 p.m. Break
 3:45 p.m. –  5:45 p.m. SQLA Performance and Tuning

Thursday November 6, 2014
 9:00 a.m. – 10:30 a.m. Mobilink Performance and Tuning
                        Introduction to Synchronization
10:30 a.m. – 10:45 a.m. Break
10:45 a.m. – 12:15 p.m. SQLA Application Architectures
12:15 p.m. –  1:30 p.m. Lunch (provided)
 1:30 p.m. –  3:30 p.m. SQLA Advanced Topics
                        SQLA and SAP HANA
 3:30 p.m. –  3:45 p.m. Break
 3:45 p.m. –  5:45 p.m. SQLA Advanced Topics
                        Data Synchronization Advanced Topics

Friday November 7, 2014
 9:00 a.m. – 10:30 a.m. SQLA Advanced Topics
10:30 a.m. – 10:45 a.m. Break
10:45 a.m. – 11:15 a.m. SQLA Advanced Topics
11:15 a.m. – 12:15 p.m. Wrap up, Feedback and Q&A

Friday, September 5, 2014

The fRiDaY File - Protecting Software

Question: How do I prevent our application from synchronizing via MobiLink from a device that's different from the original device the application was installed on?

Is there a solution built in to SQL Anywhere 16 or do we have to build it ourselves?

Short answer: There is no solution built in to SQL Anywhere/MobiLink.

Long answer: It is a simple requirement, but it is one that has spawned an entire industry: "How do I uniquely identify the computer on which my application is running?" Try asking that question on Google; I get 30,400,000 hits.

There are a lot of simplistic solutions (MAC address is a favorite) but they immediately lead to followup questions: "How do I let users move the application to a different computer when the first one is stolen/lost/destroyed/upgraded?" and "How do I deal with spoofed MAC addresses?"

There are no known solutions that meet all of these criteria:

  • economical to implement,

  • reliable, and

  • user-friendly.
Many solutions (e.g., the one used to protect Sybase software like PowerBuilder) fail to meet ANY of those criteria... IMO anyway :)

The solution I prefer ("Rely on the honesty of users") is known to meet two of the three criteria (economical, user-friendly)... whether it meets the third criteria (reliable) is something I prefer not to think about :)




Wednesday, September 3, 2014

SQL Anywhere Technical Summit November 5 to 7



PLEASE JOIN US FOR THE SAP SQL ANYWHERE® TECHNICAL SUMMIT, WHICH WILL INCLUDE LECTURES, DEMOS, AND THE OPPORTUNITY TO MEET SAP SQL ANYWHERE ENGINEERS AND MEMBERS OF THE PRODUCT MANAGEMENT TEAM, AS WELL AS INTERACT WITH YOUR DEVELOPMENT PEERS. THE SUMMIT WILL TAKE PLACE IN WATERLOO, CANADA, ON NOVEMBER 5–7, 2014. THIS FREE EVENT WILL COVER A VARIETY OF TOPICS AND SESSIONS ON SAP SQL ANYWHERE DATA MANAGEMENT SOFTWARE, INCLUDING:

  • UPCOMING RELEASE DISCUSSION, INCLUDING NEW FEATURE PREVIEWS

  • SAP SQL ANYWHERE WITHIN SAP

  • SAP SQL ANYWHERE CORE CONTENT, INCLUDING DETAILED PERFORMANCE AND TUNING INFORMATION

  • MOBILINK INTERNALS, INCLUDING PERFORMANCE AND NEW DEVELOPMENTS FOR THE INTERNET OF THINGS AND MOBILE APPS

  • INTRODUCTORY MOBILINK AND ULTRALITE DISCUSSIONS FOR THOSE INTERESTED IN EXPLORING DATA SYNCHRONIZATION

  • DATA MANAGEMENT FOR OEMS WISHING TO MOVE TO CLOUD SOLUTIONS
SPACE IS LIMITED FOR THIS EVENT, SO WE ENCOURAGE YOU TO REGISTER AS SOON AS POSSIBLE.

WHEN YOU REGISTER, PLEASE COMPLETE THE QUESTIONNAIRE TO PROVIDE INSIGHT INTO YOUR USE OF SAP SQL ANYWHERE AND POSSIBLE TOPICS TO COVER DURING THE EVENT.

WE LOOK FORWARD TO SEEING YOU IN NOVEMBER.

BEST REGARDS,

SAP SQL ANYWHERE PRODUCT TEAM

FOR MORE QUESTIONS CALL PAM BARROWCLIFFE +1-(519)-883-6352


Please note that invitations are non-transferable.
This offer is extended to you under the condition that your acceptance does not violate any applicable rules or policies within your organization. If you are unsure whether your acceptance may violate any such rules or policies, we strongly encourage you to seek advice from your ethics or compliance official. For organizations that are unable to accept all or a portion of this complimentary invitation and would like to pay for your own expenses, SAP is happy to provide a reasonable market value and an invoice or other suitable payment process. Please find out whether the participation is taxable under your local tax laws. If you have any questions, please contact your employer's HR department or your tax advisor. We would like to inform you, that SAP will bear the German income tax according § 37 b income tax law for benefit in kinds to customers.