Hi, First off - I want to establish my background a little bit. The reason will become clear in a paragraph or two.
I've been using SAPDB on production web sites for 18 months. The first generation of the site was Windows 2000 SP2 + ASP VBScript. Later upgraded to Windows 2000 SP3 without problems. Also updated SAPDB to 7.3.0.25 and ODBC 7.3.0.28. i386. A single machine with dual CPU hosts both the web site and SAPDB at the same time, using localhost as the ODBC connection path. I also have custom replication in place where three servers each contain a complete copy of the database by all exchanging INSERT / UPDATE / DELETE statements (via text files) in peer to peer fashion every 2 minutes. Over 5,000,000 primary table records per year are entered by web site users. There are also a number of Windows Scripting Host (WSH) VBScript agents that run in loops to process web site tasks. The replication is also done with a WSH agent. In other words, the entire site is VBScript + ODBC, using dynamic SQL. The second generation site is now 1 month old. The major changes 1) Is now Windows 2000 SP3. 2.) the site now consists of TWO separate servers, one is running SAPDB and the other is running the web site. 3) The web site is now ASP.NET and ODBC.NET but still built using all dynamic SQL. Replication is done with the same VBScript engines as before. The major difference is that now the ODBC driver is connecting to a 2nd database server (machine) instead of running both on the same machine. The problem ============== Before we moved to two machines per site (one database, one web)... everything was very stable in the SAPDB ODBC driver. But now we are getting problems. Given we have two duplicate sites (one database server, one web server), it is pretty easy to know that the problem isn't hardware or corrupted install. Each install was "hand built" with the same procedure, not a "clone" or anything. The databases are replicated one INSERT/UPDATE/DELETE at a time, no chance of a problem in a binary backup or other glitch. Two systems of the problem that we never saw with the first generation design: 1. At times the ODBC calls just stall. All statements, including SELECTs. It is "system wide" on the web server, even stand-alone WSH agents will stall. CPU is normal (under 10% usage), disk looks fine, network working - but the SAPDB ODBC calls all hang. I have gone so far as to COLD / WARM the database server and the ODBC calls are still "stuck." Typically these last for about 30 seconds to 10 minutes, then just magically go away. During that time, I have opened up network tests to ensure that the database <---> web server can talk, no problem. This happens about once every 4 days, with a 24x7 web site. 2. Even more rare, and what finally prompted me to write this post to the list... we have a crash in the ODBC driver. The system has called a custom component and that component has failed and generated an exception. This indicates a problem with the custom component. Notify the developer of this component that a failure has occurred and provide them with the information below. Component Prog ID: 1[ODBC][E:\Program Files\SAPDB\ODBC73\sqlod32.dll] Method Name: IDispenserDriver::CreateResource Process Name: aspnet_wp.exe The serious nature of this error has caused the process to terminate. Exception: C0000005 Address: 0x0E95B9CF Call Stack: sqlod32 + 0x4B9CF sqlod32 + 0x855F0 + 0xCD6D31F4 This crash has happened only ONCE in 5 weeks. But we have only been running 7.3.0.28 ODBC driver since it was released 15 days ago. My speculation ================ As I've hinted above, I suspect the ODBC client driver has some internal problems. Threading? Socket leaks? We are running 7.3.0.28 now, but we had the problem before we upgraded (we had 7.3.0.18 before). The database server is kernel 7.3.0.25. Help! ======= A problem that happens only 10 minutes out of every 4 days is not easy to track down. Are there suggestions on what I can do? I have eliminated everything but the ODBC driver. I have already gone so far to put wrappers around all my SELECT / INSERT / UPDATE / DELETE statements and measure the time. Anytime a query takes more than it should, I get alerted via pager. The last time I was able to get in while problem was going on, I saw only 5 active sessions and database in normal state (connect possible, not full, etc.) Is there any way to study the internal workings of the ODBC driver? I haven't messed with any of the connection pooling or other options, suggestions? A debug version of the driver? Thank you. Stephen Gutknecht currently in Puyallup, Washington USA _______________________________________________ sapdb.general mailing list [EMAIL PROTECTED] http://listserv.sap.com/mailman/listinfo/sapdb.general
