Question

I have a BizTalk application trying to do the following:

1) Typedpolling from SQL server using WCF-custom adapter, debatch them

2) Convert and save each individual record to an Oracle database.

I can successfully typedpoll records from SQL and send them to files. I can also successfully read records from files and save them to Oracle tables. However, I can not manage to poll records from SQL and save them directly to Oracle Table. The error I received was: "Exception occurred when persisting state to the database". This is the error message in its entirety:

xlang/s engine event log entry: Uncaught exception (see the 'inner exception' below) has suspended an instance of service 'Test00070.Test_00070(7a42a905-f067-e0f9-31df-b2ae9c06b0e4)'.
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: 7928beb5-f8db-4212-9e45-4eeaeae34690
Shape name: Send_1
ShapeId: 89c1b018-07d3-42d5-8511-6eb9da64b029
Exception thrown from: segment 1, progress 11
Inner exception: Exception occurred when persisting state to the database.

Exception type: PersistenceException
Source: Microsoft.XLANGs.BizTalk.Engine
Target Site: Void Commit()
The following is a stack trace that identifies the location where the exception occured

   at Microsoft.BizTalk.XLANGs.BTXEngine.BTXXlangStore.Commit()
   at Microsoft.XLANGs.Core.Service.Persist(Boolean dehydrate, Context ctx, Boolean idleRequired, Boolean finalPersist, Boolean bypassCommit, Boolean terminate)
   at Microsoft.XLANGs.Core.ServiceContext.PendingCommit(Boolean ignore, XMessage msg)
   at Microsoft.XLANGs.Core.ExceptionHandlingContext.PendingCommit(Boolean ignoreCommit, XMessage msg)
   at Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase.SendMessage(Int32 iOperation, XLANGMessage msg, Correlation[] initCorrelations, Correlation[] followCorrelations, SubscriptionWrapper& subscriptionWrapper, Context cxt, Segment seg, ActivityFlags flags)
   at Microsoft.XLANGs.Core.PortBase.SendMessage(Int32 iOperation, XLANGMessage msg, Correlation[] initCorrelations, Correlation[] followCorrelations, SubscriptionWrapper& subscriptionWrapper, Context cxt, Segment seg)
   at Test00070.Test_00070.segment1(StopConditions stopOn)
   at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)
Additional error information:

        A batch item failed persistence Item-ID c62be0cc-ef1c-4b8d-a00e-d8c1506b4659 OperationType MAIO_CommitBatch Status -1061151949 ErrorInfo The message found multiple request response subscriptions. A message can only be routed to a single request response subscription. .

Exception type: PersistenceItemException
Additional error information:

        Failed to publish (send) a message in the batch. This is usually because there is no one expecting to receive this message.  The error was The message found multiple request response subscriptions. A message can only be routed to a single request response subscription.  with status -1061151949.

Exception type: PublishMessageException

This was what I did:

  1. Created auto generated items using WCF-Custom for OracleDBBinding and SQLBinding.
  2. From the xsd for SQLBinding, I debatched polled messages into individual records
  3. Create orchestration to received polled data, transform the SQL Message to OracleMsg and then Insert them back into Oracle.

enter image description here

I have successfully deployed the application but once I put the records into the SQL Tables, they got pulled over by BizTalk but I have encountered the error above.

Has anyone come across the issue above?

Update: After stopping other application that might be waiting for the published message, I got this error:

 There was a failure executing the send pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLTransmit, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "XML assembler" Send Port: "SEND_PORT_00070" URI: "oracledb://oracleServer/?PollingId=TEST_00070" Reason: This Assembler cannot retrieve a document specification using this type: "http://Microsoft.LobServices.OracleDB/2007/03/ORACLE_SCHEMA/Table/ROTATION_REQ#Insert".

This is my mapping: enter image description here

Was it helpful?

Solution

Please check you have the document specification (aka schema) installed in your BizTalk environment: http://Microsoft.LobServices.OracleDB/2007/03/ORACLE_SCHEMA/Table/ROTATION_REQ#Insert

The error indicates that the send port has trouble accessing this schema. It might be that this schema is not installed in BizTalk or that the schema is part of a different BizTalk application and the application which contains your send port needs a reference to it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top