Forum Replies Created
-
AuthorPosts
-
With an input/output folder orchestration 1 publishes the message in the MesssageBox. A send port subscribes to this message and writes it to a file. A receive location reads the file and publishes to the MessageBox where orchestration 2 subscribes to the message.
Apart from the overhead of doing this you may hit file contention issues if your files are large.
Having orchestration 2 subscribe to the message published by orchestration 1 cuts out unnecessary work.
This is achieved by using Direct ports.
Care must be taken when using direct ports. If you declare a direct port in an orchestration by default it will subscribe to every message that matches the message type declared in the receive shape. You can add filters to that receive shape to subscribe to a subset of messages. You can filter on any promoted property in the message context.Looking directly into the BiztalkMsgBoxDb is far too hard, use the HAT or the admin console(I assume you are using Biztalk 2006)
The easiest way to track this is to stop(do not unenlist) the orchestration and send port and submit a message.
Use the HAT to look at the message and the message context.
The inbound HTTP request should appear in the message box, you can check the BTS.SSOTicket and also the HTTP.InboundHttpHeaders which should contain the windows username. These will be in the message context.
Now start the orchestration, you can check the output of the orchestration, making sure the BTS.SSOTicket is the same.
Lastly start the Send port. The message should then be sent to Oracle.Do you have any logic in your orchestration or do you just receive and send same message.
Greg
Look at using ‘Direct’ for passing data from one orchestration to another. I have to admit that I have not got the hang of it yet but the clue is in the port wizard. I think that you may have to filter on the receive shape in the second orchestration to get the subscription. I think that there are samples out there but I cant remember where. If I find one I will post.
🙂Thanks Greg,
Oracle Adapter is suppoet SSO, i can set this property on the oracle send/revieve port. It sounds make sense to me with the SSOTicket, but in my orchestration, i don’t create any new message, since i use the schema that generate from the adapter to send a call store procedure and recieve a result back.
i try to send a message using HTTP adapter, so it also supports SSO. It just weird that message context seem to always overwrite to a biztalk host instance user.Are there any way I can track who sends a message ex. by seeing SSID or which tables in BiztalkMsgBox that contains this information??
SSO requires the co-operation of the adapters to work and not all adapters support SSO.
Basically when a message is received the adapter will retrieve an SSO Ticket based on the user that submitted the message. This ticket is added to the message context (BTS.SSOTicket) and follows the message thru Biztalk. If you create a new message in an orchestration you will need to copy the BTS.SSOTicket context property.When the message is sent the SSO ticket and Affiliate application name are used to retrieve the correct user/password from the SSODb.
So the receive adapter must support SSO e.g. SOAP or HTTP and the send adapter must support SSO e.g SOAP,HTTP, FTP
This is exactly what Biztalk is designed to do.
You do not need to match the schemas, you map the messages.
Just create a new map using the schemas generated by each SQL adapter and connect the fields. Add a transform shape to your orchestration between the receive and send.Yes, the class is marked as serializable.
And thanks for idea about using static methods, everything worked fine!
Thank you very much Greg.
Hi,
Well it depends on what you mean by copy data. BizTalk is a destructive process by design, so if the FTP adapter picks up a file from your server, it’s going to delete it. Now, to make this happen, you can do it in several ways. The first way would be to use just a Content Based Routing solution. I think this is going to be the way you want to go because you said you don’t want to do any proessing on the file. What you need to do is setup a Receive Location/Port and specify the transport type to be FTP. Then click the … button next to the Address box to fill in the necessary details for your FTP server.Next, you need to create a Send Port so these FTP files that BizTalk picks up have somewhere to go, and you need to subscribe this Send Port to your Receive Location you created. To do that, in your Send Port properties,click on the Filters and Maps setting, and click on the Filter subsetting. Change the Property column to BTS.ReceivePortName, make sure the Operation is set to ==, and for the Value type in the name of your Receive Port (make sure you enter the Receive Port name and not the Receive Location name!).
Hope this helps!
BobYes, i want to impersonate a current Windows user to map to an oracle user/passwd using Affialiate application in SSO setting. In another word, a current Domain user who logs on the windows and sends a message, Biztalk should still use this user to map to another oracle user to send a query to Oracle.
My problem is Biztalk recieves a message and change a user ssid to be another user who runs the host instance, and so it maps to an incorrect oracle user.
I think the tranport properties in the oracle send port that i set user/passwd is something new, so i believe that it does not use a user that associate with System DSN.
Is your .NET class marked as serializable?
If not is the expression shape inside an atomic scope?Are you submitting more than one message at a time or does the new.txt file already exist?
What error message results in the event log?
Have you considered a static method, i.e. no object instance required
and expression shape code should be:
<yournamespace>.<yourclass>.TestFunc(\”Launch.\”);Greg
Thanks for the answer Greg,
I tried the following:
MailVar = new <MyNamespace>.<MyClass>();
MailVar.TestFunc(\”Launch.\”);But, unfortunatelly, the same situation with no result.
What could it be?Roman.
December 13, 2005 at 3:25 AM in reply to: Biz Talk Installation – Can’t configure the Biztalk. #12513Is your user account a member of the BizTalk Server Admin and ESS Admin groups?
What exact error message are you getting?
Ok, let me make sure I have this correct. You want to use a different user account / password based on who sent the message?
Not sure how to do this with the system DSN. But, I am not strong in this area.
When I worked with Oracle, we set the user id and password in the system DSN.
As far as I knew, you set the user id and password on the send port but I didn’t think that was even used at run time.
Please keep me updated if you get it working.
Try this in the expression shape:
MailVar = new <Your Namespace>.MailVar();
MailVar.TestFunc(\”Launch.\”); //MailVar is the variable of my custom classi tried create and use a new biztalk server instance that is an authentication trusted host and make all my adapters use this host instance.
Nothing has changed, the orchestration is still running under biztalk trusted server application instance user.
do i also need to sign or set message authentication? According to documentation it does not seem to be a requirement. i could not really figure out for to make SSO works for individual windows user.
🙁
any more helps? -
AuthorPosts