Is this simply a case of "not enough cache memory" for dbsrv11.exe? Scenario: 100 database started in one engine, then 10 connections attempted for each database. I. 09/14 11:20:32. SQL Anywhere Network Server Version 11.0.1.2276 I. 09/14 11:20:32. Workgroup edition ... I. 09/14 11:20:32. Database "ddd001" (ddd001.db) started at Tue Sep 14 2010 11:20 ... I. 09/14 11:22:24. Database "ddd100" (ddd100.db) started at Tue Sep 14 2010 11:22 I. 09/14 11:22:44. Cache size adjusted to 235580K I. 09/14 11:22:49. Cache size adjusted to 249980K ... I. 09/14 12:54:26. Allocating a communication buffer failed I. 09/14 12:54:26. Allocating a communication buffer failed ... [many similar messages] I. 09/14 12:54:29. Allocating a communication buffer failed I. 09/14 12:54:29. Allocating a communication buffer failed I. 09/14 12:54:29. Connection terminated abnormally I. 09/14 12:54:29. Disconnected SharedMemory client's AppInfo: IP=192.168.1.104;HOST=BCARTER-PC;OSUSER=bcarter;OS='Windows Vista Build 6001 Service Pack 1';EXE=C:\Breck\benchmark\rrloadtest.exe;PID=0x1f4c;THREAD=0x1de8;VERSION=11.0.1.2276;API=ODBC;TIMEZONEADJUSTMENT=-240 I. 09/14 12:54:29. Allocating a communication buffer failed I. 09/14 12:54:29. Connection terminated abnormally I. 09/14 12:54:29. Disconnected SharedMemory client's AppInfo: IP=192.168.1.104;HOST=BCARTER-PC;OSUSER=bcarter;OS='Windows Vista Build 6001 Service Pack 1';EXE=C:\Breck\benchmark\rrloadtest.exe;PID=0x1f4c;THREAD=0x778;VERSION=11.0.1.2276;API=ODBC;TIMEZONEADJUSTMENT=-240 I. 09/14 12:54:29. Allocating a communication buffer failed I. 09/14 12:54:29. Connection terminated abnormally ... [and so on] asked 14 Sep '10, 17:07 Breck Carter |
No, the communication buffers don't come out of the cache. This is a case of the server process running out of memory - either creating a buffer using A thousand connections to a single server isn't all that crazy, though 100 databases on a single server is quite a lot. If you try a 64-bit server on a machine with lots of RAM, I suspect you are less likely to see this problem. answered 14 Sep '10, 17:34 Graeme Perrow 4GB RAM, less than half used, and 64-bit Vista Ultimate. Removing the -c and -gn parameters made the problem go away... probably removing the -gn did the trick, I had stupidly set a large value -gn 120. 3
It's not memory that is the limitation here but address space. On 64-bit Windows a 32-bit process has 4GB of address space. What was the max cache size (-ch whether explicit or by default)? It's displayed at startup and that comes out of your address space. The default in your configuration should be about 3.6GB. -gn 120 accounts for another 120MB (by default) of address space for thread stacks. Take out the executable, DLLs & some other allocations outside of the cache and the server is really tight for address space. Use the 64-bit server and never worry about address space again :) |