SCO, blargh.
My customer has a SCO server version 5.0.7 which hosts their Universe 10.1 database. We attempted to enable connection pooling by upgrade UV to 10.1.17 (10.2 isn't supported on SCO). Upgrade went well, then connection pooling hurt bad. Kept getting error after error. I spent two weeks with IBM's engineers troubleshooting this, hours and hours of phone support. Finally, this past Friday night around 8PM IBm decided to give up on SCO and gave us an eval 100 licenses to run the site for a few months while my customer figure dout how to get a Linux server to host UV. So if you have a SCO 5.0.7 server (or any SCO server) and want to enable connection pooling, get a new server.
For your reference, some of the errors we were seeing:
System.IndexOutOfRangeException: Index was outside the bounds of the array. at IBMU2.UODOTNET.UniRPCPMessage.ReadHeaderLength() at IBMU2.UODOTNET.UniRPCPMessage.Receive(BinaryReader aDataIn) at IBMU2.UODOTNET.UniRPCConnection.ReadPacketInternal() at IBMU2.UODOTNET.UniRPCConnection.Call(Byte anEncryptionType) at IBMU2.UODOTNET.UniFile.Open() at IBMU2.UODOTNET.UniFile..ctor(UniSession pSession, String pFileName, Int32 pOption) at IBMU2.UODOTNET.UniSession.CreateUniFile(String pFileName) at ASP.dts_subjects_aspx.Page_Load(Object sender, EventArgs e)
System.Exception: An operation was attempted on something that is not a socket Source: UniObjects Class Method: Void set_Blocking(Boolean) at System.Net.Sockets.Socket.set_Blocking(Boolean value)
at IBMU2.UODOTNET.UniRPCConnection.get_IsServerAlive()
at IBMU2.UODOTNET.UniPool.FindSession(Int32 pTimeout)
at IBMU2.UODOTNET.UniObjects.OpenSession(String hostname, Int32 port_number, String userid, String password, String account, String service, Int32 min_poolsize, Int32 max_poolsize)
at IBMU2.UODOTNET.UniObjects.OpenSession(String hostname, String userid, String password, String account, String service)
at product_list.HomePage.GetProducts()
System.Exception: An operation was attempted on something that is not a socket Source: UniObjects Class Method: Void set_Blocking(Boolean) at System.Net.Sockets.Socket.set_Blocking(Boolean value)
at IBMU2.UODOTNET.UniRPCConnection.get_IsServerAlive()
at IBMU2.UODOTNET.UniPool.FindSession(Int32 pTimeout)
at IBMU2.UODOTNET.UniObjects.OpenSession(String hostname, Int32 port_number, String userid, String password, String account, String service, Int32 min_poolsize, Int32 max_poolsize)
at IBMU2.UODOTNET.UniObjects.OpenSession(String hostname, String userid, String password, String account, String service)
at left_nav_class.GetNavigation()
IBMU2.UODOTNET.UniSessionException: Unable to write data to the transport connection: An established connection was aborted by the software in your host machine.[IBM U2][UODOTNET - UNIRPC][ErrorCode=81009] The RPC failedPARTS.WEB Source: UniFile Class Method: Void Open() at IBMU2.UODOTNET.UniFile.Open()
at IBMU2.UODOTNET.UniFile..ctor(UniSession pSession, String pFileName, Int32 pOption)
at IBMU2.UODOTNET.UniSession.CreateUniFile(String pFileName)
at IBMU2.UODOTNET.UniSession.CreateUniFile(String pFileName)
at product_details.GetProduct(String strPartNo, UniSession& unisess)
System.Exception: [IBM U2][UODOTNET - UNICLIENT][ErrorCode=30114] An Execute is currently active on the server : Command Active Source:
UniPool Class Method: Void Free(IBMU2.UODOTNET.UniSession) at IBMU2.UODOTNET.UniPool.Free(UniSession us)
at IBMU2.UODOTNET.UniObjects.CloseSession(UniSession us)
at IBMU2.UODOTNET.UniObjects.CloseSession(UniSession us)
at product_list.ProductPage.CleanUpParts(String subtext)
at product_list.ProductPage.GetSearchResults(String strSearch, String Dept)
System.Threading.ThreadAbortException: Thread was being aborted.
at System.Net.UnsafeNclNativeMethods.OSSOCK.recv(IntPtr socketHandle, Byte* pinnedBuffer, Int32 len, SocketFlags socketFlags)
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, SocketError& errorCode)
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.IO.BinaryReader.ReadBytes(Int32 count)
at IBMU2.UODOTNET.UniRPCPMessage.Receive(BinaryReader aDataIn)
at IBMU2.UODOTNET.UniRPCConnection.ReadPacketInternal()
at IBMU2.UODOTNET.UniRPCConnection.Call(Byte anEncryptionType)
at IBMU2.UODOTNET.UniCommand.DoExecute(Int32 pServerCommand, Int32 pInternalReadSize, String pInputReply)
at IBMU2.UODOTNET.UniCommand.Execute()
at product_list.ProductPage.CleanUpParts(String subtext)