Smart client crashes on long query due to obsolete ODBC driver and limited RAM


 Product(s):APM Implementation and Performance Management
 Version(s):7
 Environment:N/A
 Area:N/A
 Subarea:N/A

Problem Description

User found when opening APM to the default Asset view, that some smart-clients were crashing. The crash produce the following error

Exception Type: System.Runtime.InteropServices.SEHException
Message: External component has thrown an exception.
Stack Trace: at oSlice.qryRecordCount(oSlice* , Int32 )
at Ivara.PL.QueryBase.CreateSlice(Boolean withParams, Boolean bBypassRowCount)
at Ivara.PL.QueryBase.CreateSlice()
at Ivara.PL.Mclb
Query.GetResults(Int32 startRow, Int32 maxRows, PLResult& result)
at Ivara.PL.MclbQuery.GetResultsAsDataSet(Int32 startRow, Int32
maxRows, PLResult& result)
at Ivara.PL.InternalResultSet.GetMCLBDataAsDataSet(Int32 startRow, Int32 maxRow, Int32 nPCID, PLResul
t& result)

=============================================
Outer Exception:

Exception Type: Ivara.PL.Exceptions.InvalidActivityExcep
tion
Message: SEHException, with message External component has thrown an exception., caught at: [?GetMCLBDataAsDataSet@InternalResu
ltSet@PL@Ivara@@$$FQE$AAMPE$AAVIvaraDataSet@Control@UIData@Data@23@HHHAE$CAPE$AAVPLResult@723@@Z,c:\apm\apm\presentationlayer\pl\res
ultset.cpp,482]
Stack Trace:
Server stack trace:
at Ivara.Common.Communication.WcfClientMessageInspector.AfterReceiveReply(Mess
age& reply, Object correlationState)
at System.ServiceModel.Dispatcher.ImmutableClientRuntime.AfterReceiveReply(ProxyRpc& rpc)

at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceMode
l.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan
timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime
operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
at System
.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.Real
Proxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Ivara.PL.Interfaces.IResultSet.GetMCLBDataAsDataSet(Guid resultSetKey, I
nt32 startRow, Int32 maxRow, Int32 nPCID, PLResult& result)
at Ivara.PL.Client.ResultSet.GetMCLBDataAsDataSet(Int32 startRow, Int
32 maxRows, Int32 nPC, PLResult& result)
at Ivara.PL.Client.ResultSetDoWorkExtensions.ResultSetGetMCLBDataSet_DoWork(IClientResul
tSet rs, Object sender, DoWorkEventArgs e)
at Ivara.PL.Client.WrapRemoteCalls.Wrap(Action serverCall, KillActivityMethod killActi
vity, ExceptionMethod reconnect, DisplayErrorAndShutdownMethod displayErrorAndShutdown, ExceptionMethod handleUnknown)

Solution

Analysis of the dump files determined that the user was running out of RAM and crashing due to a obsolete ODBC driver. APM 7.12.5 is not compatible with SQL Native Client unlike old versions of APM and Ivara (pre release 7.5). User updated the Driver from SQL Native Client to ODBC Driver 13 for SQL Server and increased the RAM from 16GB to 32GB on the Smart Client Server. This resolved the issue.

See also

SR 7001248826.

And;

https://communities.bentley.com/products/assetwise/asset_performance_management/w/wiki/32677/microsoft-odbc-drivers-11-and-13-supported-in-r7-5