none
Implementing an External Batch Release Mechanism RRS feed

  • Question

  • Hi,

    I'm trying to implement the external batch release mechanism by following the example from msdn http://msdn.microsoft.com/en-us/library/bb246108(BTS.70).aspx. I'm running BizTalk 2010.  I create a xml file like this to release the batch.

    <?xml version="1.0" encoding="utf-8" ?>

    - <ns0:ControlMessage xmlns:ns0="http://SQLControlMessage.IssueSelect">

    - <ns0:PAM_Control>

    <ns0:DestinationParty>4</ns0:DestinationParty>

    <ns0:ActionDateTime>2010-12-15T10:45:01:795</ns0:ActionDateTime>

    <ns0:BatchId>1</ns0:BatchId>

    <ns0:BatchName>BatchName</ns0:BatchName>

    <ns0:DestinationPartyName>PartyB</ns0:DestinationPartyName>

    <ns0:SenderPartyName>PartyA</ns0:SenderPartyName>

    <ns0:AgreementName>PartyB_Agreement</ns0:AgreementName>

    <ns0:ReceiverPartyNameType>PartyB</ns0:ReceiverPartyNameType>

    </ns0:PAM_Control>

    </ns0:ControlMessage>

     

    I'm PartyA and trying to send a file for PartyB.

    The PartB_Agreement looks like this General --  PartyB->PartyA -- PartyA->PartyB and the Batch is configured under PartyA->PartyB tab. I'm a little confused what should be put in DestinationPartyName, ReceiverPartyNameType and SenderPartyName. I guess the SenderPartyName would be PartyA, DestinationPartyName would be PartyB and ReceiverPartyNameType would be PartyB. I'm not certain though. Any advise would very very appreciated. I keep getting the error

    Error details: The published message could not be routed because no subscribers were found. This error occurs if the subscribing orchestration or send port has not been enlisted, or if some of the message properties necessary for subscription evaluation have not been promoted

    In my BizTalk application, I created a one-way receive location in the receive port which has the transport type FILE and SELECT BatchControlMessageRecvPipeline FOR RECEIVE PIPELINE.
    Thanks for the help!!
    Andey

    Wednesday, December 15, 2010 4:09 PM

Answers

  • Andey,

    I hope we are discussing 2 different things here.

    To release the batch through External Trigger.

    As i suggested earlier to activate the Batch through external Trigger, Create a Receive Location with XMLReceieve Pipeline and drop the Trigger Message as posted in the earlier post. 

    To Release the batch through Scehdule or Based on Number of Transactions or Interchanges 

    For the BatchControlMessageRecvLoc Receive Location the host has to be a 32bit.

    BatchControlMessageRecvLoc Receive Location is based on the SQL Adpater which is supported only in the 32bit.

    To get it working, create a new host instance and set the 32bit Only option in the host configuration issue. 

    Change the Receive Handler for BatchControlMessageRecvLoc  to the 32bit Host created above.

     

     

     


    Sathish - http://blog.tsathish.com - Please Indicate "Mark as Answer" if this Post has Answered the Question
    • Proposed as answer by SathishT Wednesday, December 22, 2010 6:38 PM
    • Marked as answer by Andrew_ZhuModerator Thursday, December 23, 2010 5:40 AM
    Friday, December 17, 2010 10:44 PM

All replies

  • Your desciption is little confusing.

     

    You have to start the batch before you can have a release mechanism.the instance of the started batch orchestration has to be there ,then only the active instance is going to terminate by releasing the batch.

     

    Please be descriptive,I can help.

     

    Thanks...

    SPN.


    Thanks... SPN
    Thursday, December 16, 2010 3:25 AM
  • Andey,

    The Party Configuration looks good, you have to create the Batch Configuration in the PartyA > PartyB Tab.

    For creating External Trigger, Create a Receive Location with XMLReceieve Pipeline.

    Create a Trigger XML - PAM Control Message as Below. Submit the Trigger XML in the above created Receive Location. Your batch will be released

    <PAM_Control xmlns="http://SQLControlMessage.IssueSelect">
     <EdiMessageType>0</EdiMessageType> 
     <ActionType>EdiBatchOverride</ActionType> 
     <ActionDateTime>2010-12-15T19:56:31.250</ActionDateTime> 
     <UsedOnce>0</UsedOnce> 
     <BatchId>1</BatchId> 
     <BatchName>SampleBatchName</BatchName> 
     <SenderPartyName>PartyA</SenderPartyName> 
     <ReceiverPartyName>PartyB</ReceiverPartyName> 
     <AgreementName>Agreement1</AgreementName> 
     <ToBeBatched>1</ToBeBatched> 
     </PAM_Control>



    Sathish - http://blog.tsathish.com - Please Indicate "Mark as Answer" if this Post has Answered the Question
    Thursday, December 16, 2010 4:15 AM
  • Hi Sathish,

    I tried this but still get the error message

    "The published message could not be routed because no subscribers were found. This error occurs if the subscribing orchestration or send port has not been enlisted, or if some of the message properties necessary for subscription evaluation have not been promoted. Please use the Biztalk Administration console to troubleshoot this failure. "

    I did start the batch and if I manually click the override button, it will generate the file.

    Any idea where I should look for the problem?

    Thanks a lot!

    Thursday, December 16, 2010 9:36 PM
  • Andey,

    Make sure all the EDI Batching Orchestartion in the BizTalk EDI Application is started.

    Can you check the suspended message, whether it is same as the Trigger message you dropped. 


    Sathish - http://blog.tsathish.com - Please Indicate "Mark as Answer" if this Post has Answered the Question
    Thursday, December 16, 2010 9:50 PM
  • Sathish,

     

    All the EDI Batching Orchestration in BizTalk EDI Application is started.

    They are:

    Microsoft.BizTalk.Edi.BatchSuspendOrchestration.BatchElementSuspendService

    Microsoft.BizTalk.Edi.BatchingOrchestration.BatchingService

    Microsoft.BizTalk.Edi.RoutingOrchestration.BatchRoutingService

    Microsoft.BizTalk.Edi.UpgradeBatchingOrchestration.BatchRoutingService

    Is there any missing one that should be there but not?

     

    I checked the suspended message. It is the same as the Trigger message I send. I wonder if some values are not correct, will the same error message

    "The published message could not be routed because no subscribers were found. This error occurs if the subscribing orchestration or send port has not been enlisted, or if some of the message properties necessary for subscription evaluation have not been promoted. Please use the Biztalk Administration console to troubleshoot this failure. " be thrown? Or the error message will be something different. I am trying to rule out the values in the trigger xml file are wrong.

    Thanks!

    Friday, December 17, 2010 6:55 PM
  • Andey,

    The receive location you created is it in the BizTalk EDI Application or some other Application. If it's some other Application, Add BizTalk EDI Application as reference to the Other Application.

    Also can you check the Message Type of the Suspended Message. Is it http://SQLControlMessage.IssueSelect#PAM_Control.

     


    Sathish - http://blog.tsathish.com - Please Indicate "Mark as Answer" if this Post has Answered the Question
    Friday, December 17, 2010 7:56 PM
  • I guess I found the problem is.

    According to msdn http://msdn.microsoft.com/en-us/library/bb246093(BTS.70).aspx, The BatchControlMessageRecvLoc Receive Location Can Only Run on a 32-Bit Computer or in WOW on a 64-Bit Computer


    The server I am running BizTalk is actually a 64 bit machine. I guess I have to change it to 32 bit? That would be a lot of work. Anyone had luck with the batch release on 64 bit machine.

    Thanks!

    Friday, December 17, 2010 8:02 PM
  • Andey,

    I hope we are discussing 2 different things here.

    To release the batch through External Trigger.

    As i suggested earlier to activate the Batch through external Trigger, Create a Receive Location with XMLReceieve Pipeline and drop the Trigger Message as posted in the earlier post. 

    To Release the batch through Scehdule or Based on Number of Transactions or Interchanges 

    For the BatchControlMessageRecvLoc Receive Location the host has to be a 32bit.

    BatchControlMessageRecvLoc Receive Location is based on the SQL Adpater which is supported only in the 32bit.

    To get it working, create a new host instance and set the 32bit Only option in the host configuration issue. 

    Change the Receive Handler for BatchControlMessageRecvLoc  to the 32bit Host created above.

     

     

     


    Sathish - http://blog.tsathish.com - Please Indicate "Mark as Answer" if this Post has Answered the Question
    • Proposed as answer by SathishT Wednesday, December 22, 2010 6:38 PM
    • Marked as answer by Andrew_ZhuModerator Thursday, December 23, 2010 5:40 AM
    Friday, December 17, 2010 10:44 PM