System.Data.SQLite

Login
This project makes use of Eagle, provided by Mistachkin Systems.
Eagle: Secure Software Automation

Artifact 794ce057e7990ecd5f6c25963f8326bf77d5e4ea:

Ticket change [794ce057e7] - Ticket [69cfdf79fa] Pooling not working after upgrading to 1.0.109.x status still Pending with 3 other changes by anonymous 2018-11-12 11:01:09.
D 2018-11-12T11:01:09.014
J icomment I'm\susing\sthe\sdefault\sISQLiteConnectionPool\simplementation,\sbut\sreproducing\sthis\sissue\swith\sa\sbarebones\stest\scode\sI've\spinpointed\sthe\sroot\scause:\ssetting\sSQLiteConnectionStringBuilder.FailIfMissing\sto\strue\scauses\sSQLiteConnection.PoolCount\snot\sto\sreturn\sits\sexpected\svalue.\r\n\r\nHere's\smy\scode,\swhich\susing\sSystem.Data.SQLite.Core\s1.0.109.2\sshows\sa\sfinal\sSQLiteConnection.PoolCount\sof\s0\sinstead\sof\s63\swhen\susing\sSystem.Data.SQLite.Core\s1.0.108:\r\n\r\nusing\sSystem;\r\nusing\sSystem.Data.SQLite;\r\nusing\sSystem.Linq;\r\n\r\nnamespace\sTest109\r\n{\r\n\s\s\s\sclass\sProgram\r\n\s\s\s\s{\r\n\s\s\s\s\s\s\s\sprivate\sconst\sint\sMaxPoolSize\s=\s64;\r\n\s\s\s\s\s\s\s\sprivate\sconst\sint\sPreserve\s=\s1;\r\n\s\s\s\s\s\s\s\sprivate\sstatic\sSQLiteConnectionStringBuilder\s_sqLiteConnectionStringBuilder;\r\n\r\n\s\s\s\s\s\s\s\sstatic\svoid\sMain(string[]\sargs)\r\n\s\s\s\s\s\s\s\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\sConsole.WriteLine($"Using\sSQLite\s{SQLiteConnection.SQLiteVersion}");\r\n\r\n\s\s\s\s\s\s\s\s\s\s\s\s_sqLiteConnectionStringBuilder\s=\snew\sSQLiteConnectionStringBuilder($"Max\sPool\sSize={MaxPoolSize}")\r\n\s\s\s\s\s\s\s\s\s\s\s\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sDataSource\s=\s":memory:",\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sFailIfMissing\s=\strue,\s//\sThis\ssetting\scauses\sSQLiteConnection.PoolCount\snot\sto\sreturn\sits\sexpected\svalue.\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sPooling\s=\strue,\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sToFullPath\s=\sfalse,\r\n\s\s\s\s\s\s\s\s\s\s\s\s};\r\n\r\n\s\s\s\s\s\s\s\s\s\s\s\svar\sconnections\s=\sEnumerable.Range(1,\sMaxPoolSize).Select(_\s=>\sOpenSqLiteConnection()).ToArray();\r\n\s\s\s\s\s\s\s\s\s\s\s\sforeach\s(var\sconnection\sin\sconnections.Skip(Preserve))\r\n\s\s\s\s\s\s\s\s\s\s\s\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sCloseSqLiteConnection(connection);\r\n\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\r\n\s\s\s\s\s\s\s\s\s\s\s\sCheckSqLiteConnection(connections[0]);\r\n\s\s\s\s\s\s\s\s}\r\n\r\n\s\s\s\s\s\s\s\sprivate\sstatic\sSQLiteConnection\sOpenSqLiteConnection()\r\n\s\s\s\s\s\s\s\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\svar\sconnection\s=\snew\sSQLiteConnection(_sqLiteConnectionStringBuilder.ToString());\r\n\s\s\s\s\s\s\s\s\s\s\s\sconnection.Open();\r\n\r\n\s\s\s\s\s\s\s\s\s\s\s\sCheckSqLiteConnection(connection);\r\n\s\s\s\s\s\s\s\s\s\s\s\sreturn\sconnection;\r\n\s\s\s\s\s\s\s\s}\r\n\r\n\s\s\s\s\s\s\s\sprivate\sstatic\svoid\sCloseSqLiteConnection(SQLiteConnection\sconnection)\r\n\s\s\s\s\s\s\s\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\sconnection.Close();\r\n\s\s\s\s\s\s\s\s\s\s\s\sCheckSqLiteConnection(connection);\r\n\s\s\s\s\s\s\s\s}\r\n\r\n\s\s\s\s\s\s\s\sprivate\sstatic\svoid\sCheckSqLiteConnection(SQLiteConnection\sconnection)\r\n\s\s\s\s\s\s\s\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\sConsole.WriteLine($"Connection\s{connection.State}:\s{connection.PoolCount}\sin\spool");\r\n\s\s\s\s\s\s\s\s}\r\n\s\s\s\s}\r\n}
J login anonymous
J mimetype text/x-fossil-plain
K 69cfdf79fa11f506602146b0fd192c9a546ad167
U anonymous
Z e0a0295c52cea46c5b4c8d85bea59762