[BTS] BizTalk Oracle Adapter Error 01
日志名称: Application
来源: XLANG/s
日期: 2013/6/16 13:41:56 事件 ID: 10034
任务类别: 无 级别: 错误 关键字: 经典 用户:
暂缺 计算机: BTS2010
描述: xlang/s engine event log entry: Uncaught exception (see the 'inner exception' below) has suspended an instance of service 'XZSoftware.Oracle.BizTalk.GetEmployeeProcess(ae8d5556-0664-d7d8-0af5-d0b7d7dfa7d8)'. The service instance will remain suspended until administratively resumed or terminated. If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception. InstanceId: af0741a2-79c9-4895-9825-73b318cb66a8 Shape name: ShapeId: Exception thrown from: segment -1, progress -1 Inner exception: An error occurred while processing the message, refer to the details section for more information Message ID: {6B79479E-1BDB-4AFF-A0C6-16B8F56115CC} Instance ID: {966C9DD4-FD60-4D82-8621-D963A84362E5} Error Description: Microsoft.ServiceModel.Channels.Common.MetadataException: Metadata resolution failed for OperationId: "http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES/Select". ---> Microsoft.ServiceModel.Channels.Common.ConnectionException: Due to an Oracle Client limitation, the adapter failed to open a connection. This is because either (a) ambient transaction is present and the TNS alias is longer than 39 characters, or (b) ambient transaction is present and a non-TNS based URI was used. To resolve this, use a TNS alias to connect to Oracle and make sure it is not more than 39 characters. at Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection(OracleCommonExecutionHelper executionHelper) --- End of inner exception stack trace ---
Server stack trace: at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result) at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result) at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result) at System.ServiceModel.Channels.ServiceChannel.EndRequest(IAsyncResult result)
Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result) at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult result)
Exception type: XlangSoapException Source: Microsoft.XLANGs.BizTalk.Engine Target Site: Void VerifyTransport(Microsoft.XLANGs.Core.Envelope, Int32, Microsoft.XLANGs.Core.Context) The following is a stack trace that identifies the location where the exception occured
at Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase.VerifyTransport(Envelope env, Int32 operationId, Context ctx) at Microsoft.XLANGs.Core.Subscription.Receive(Segment s, Context ctx, Envelope& env, Boolean topOnly) at Microsoft.XLANGs.Core.PortBase.GetMessageId(Subscription subscription, Segment currentSegment, Context cxt, Envelope& env, CachedObject location) at XZSoftware.Oracle.BizTalk.GetEmployeeProcess.segment1(StopConditions stopOn) at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)
事件 Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="XLANG/s" /> <EventID Qualifiers="0">10034</EventID> <Level>2</Level> <Task>0</Task> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2013-06-16T05:41:56.000000000Z" /> <EventRecordID>3172</EventRecordID> <Channel>Application</Channel> <Computer>BTS2010</Computer> <Security /> </System> <EventData> <Data>xlang/s engine event log entry: Uncaught exception (see the 'inner exception' below) has suspended an instance of service 'XZSoftware.Oracle.BizTalk.GetEmployeeProcess(ae8d5556-0664-d7d8-0af5-d0b7d7dfa7d8)'. The service instance will remain suspended until administratively resumed or terminated. If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception. InstanceId: af0741a2-79c9-4895-9825-73b318cb66a8 Shape name: ShapeId: Exception thrown from: segment -1, progress -1 Inner exception: An error occurred while processing the message, refer to the details section for more information Message ID: {6B79479E-1BDB-4AFF-A0C6-16B8F56115CC} Instance ID: {966C9DD4-FD60-4D82-8621-D963A84362E5} Error Description: Microsoft.ServiceModel.Channels.Common.MetadataException: Metadata resolution failed for OperationId: "http://Microsoft.LobServices.OracleDB/2007/03/HR/Table/EMPLOYEES/Select". ---> Microsoft.ServiceModel.Channels.Common.ConnectionException: Due to an Oracle Client limitation, the adapter failed to open a connection. This is because either (a) ambient transaction is present and the TNS alias is longer than 39 characters, or (b) ambient transaction is present and a non-TNS based URI was used. To resolve this, use a TNS alias to connect to Oracle and make sure it is not more than 39 characters. at Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection(OracleCommonExecutionHelper executionHelper) --- End of inner exception stack trace ---
Server stack trace: at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result) at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result) at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result) at System.ServiceModel.Channels.ServiceChannel.EndRequest(IAsyncResult result)
Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result) at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult result)
Exception type: XlangSoapException Source: Microsoft.XLANGs.BizTalk.Engine Target Site: Void VerifyTransport(Microsoft.XLANGs.Core.Envelope, Int32, Microsoft.XLANGs.Core.Context) The following is a stack trace that identifies the location where the exception occured
at Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase.VerifyTransport(Envelope env, Int32 operationId, Context ctx) at Microsoft.XLANGs.Core.Subscription.Receive(Segment s, Context ctx, Envelope& env, Boolean topOnly) at Microsoft.XLANGs.Core.PortBase.GetMessageId(Subscription subscription, Segment currentSegment, Context cxt, Envelope& env, CachedObject location) at XZSoftware.Oracle.BizTalk.GetEmployeeProcess.segment1(StopConditions stopOn) at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)
</Data> </EventData> </Event>
Reson:
Your send port config was mistaken.
For example: oracledb://10.1111.111.111:1521/TNSNAME0000/Dedicated . In BizTalk 39 chats limited is "oracledb://10.1111.111.111:1521/TNSNAM". Then you must change your TNS name for 39 char limited.
Solution:
Change "TNSNAME0000" to "TNSNAM"