|
Home > Archive > BizTalk Server Applications Integration > December 2004 > Old timeout issue: Please can you help me?
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Old timeout issue: Please can you help me?
|
|
| Aniello 2004-11-26, 5:49 pm |
| Dear all,
I have an orchestration published as web service. Inside it there are two
ports hooked on two web services that call an other orchestration
published as web service. This second orchestration runs for a long time
(about 4 minutes) for this reason I receive an exception in the first
orchestration, because the result doesn't come back in time.
I have increased the IIS timeout (600 seconds), the httpRuntime tag of
machine.config file (600 seconds), on the send ports of web services I
have tried to change the timeout, but I'm able to change only the Retry
Count and Retry Interval content. In these ways I haven't able to solve the
problem.
I can't set an high timeout value using
MyMessage(SOAP.ClientConnectionTimeout) = ...
because my orchestration MUST be BPEL compliant.
Does anyone know how to increase the timeout in order to avoid this error?
Thanks,
Aniello.
| |
| Alistair 2B.net 2004-11-26, 5:49 pm |
| Aniello
Can you explain a bit more about what the web services orchestrations are
doing, If I was trying this I might try a parallel condition in the first
web service/orchestration that accepted an initial response from the called
web service, in the second condition I'd have a condition waiting for the
final response from your second web service. Once both conditions had been
met your first web service orchestration (The caller) could continue
processing.
Hope this helps
Aly
"Aniello" <aniello> wrote in message
news:uTxQ3b90EHA.2568@TK2MSFTNGP10.phx.gbl...
> Dear all,
> I have an orchestration published as web service. Inside it there are two
> ports hooked on two web services that call an other orchestration
> published as web service. This second orchestration runs for a long time
> (about 4 minutes) for this reason I receive an exception in the first
> orchestration, because the result doesn't come back in time.
> I have increased the IIS timeout (600 seconds), the httpRuntime tag of
> machine.config file (600 seconds), on the send ports of web services I
> have tried to change the timeout, but I'm able to change only the Retry
> Count and Retry Interval content. In these ways I haven't able to solve
> the
> problem.
> I can't set an high timeout value using
> MyMessage(SOAP.ClientConnectionTimeout) = ...
> because my orchestration MUST be BPEL compliant.
> Does anyone know how to increase the timeout in order to avoid this error?
>
> Thanks,
> Aniello.
>
>
| |
| Aniello 2004-11-29, 2:46 am |
| Aly,
first of all thanks for your support.
Unfortunately my orchestration can't execute parallel actions. In fact into
the support orchestration (published as web service) I MUST create a service
and make a first invocation on it, then when the results come back into the
first orchestration (the caller) the business process MUST continue or not
on the base of coming back results. The problem is that the support
orchestration (creation new service and invoking it) spends a lot of time
and I don't know how to force the first orchestration (caller) to wait for
results. I don't know if there is a general approach to force Timeout inside
BizTalk...
Aniello.
"Alistair 2B.net" <alistaird@2bconsulting.net> wrote in message
news:#1OYx#$0EHA.3504@TK2MSFTNGP12.phx.gbl...
> Aniello
>
> Can you explain a bit more about what the web services orchestrations are
> doing, If I was trying this I might try a parallel condition in the first
> web service/orchestration that accepted an initial response from the
called
> web service, in the second condition I'd have a condition waiting for the
> final response from your second web service. Once both conditions had
been
> met your first web service orchestration (The caller) could continue
> processing.
>
> Hope this helps
>
> Aly
>
> "Aniello" <aniello> wrote in message
> news:uTxQ3b90EHA.2568@TK2MSFTNGP10.phx.gbl...
two[vbcol=seagreen]
error?[vbcol=seagreen]
>
>
| |
| Greg Forsythe 2004-11-29, 7:48 am |
| One answer would be to make the process asynchronous and pass the results of
the second orchestration as a web service call back to the first.
Orchestration 1 calls orchestration 2, receives a simple ack, then waits on
a receive. Orchestration 2 processes the message and calls orchestration 1.
This can also be achieved using direct ports rather than web services, as
long as both orchestrations are running in the same Biztalk group (same
MessageBoxDb)
Greg
"Aniello" <aniello> wrote in message
news:OS$lq2e1EHA.324@TK2MSFTNGP10.phx.gbl...
> Aly,
> first of all thanks for your support.
> Unfortunately my orchestration can't execute parallel actions. In fact
into
> the support orchestration (published as web service) I MUST create a
service
> and make a first invocation on it, then when the results come back into
the
> first orchestration (the caller) the business process MUST continue or not
> on the base of coming back results. The problem is that the support
> orchestration (creation new service and invoking it) spends a lot of time
> and I don't know how to force the first orchestration (caller) to wait for
> results. I don't know if there is a general approach to force Timeout
inside
> BizTalk...
> Aniello.
>
> "Alistair 2B.net" <alistaird@2bconsulting.net> wrote in message
> news:#1OYx#$0EHA.3504@TK2MSFTNGP12.phx.gbl...
are[vbcol=seagreen]
first[vbcol=seagreen]
> called
the[vbcol=seagreen]
> been
> two
time[vbcol=seagreen]
Retry[vbcol=seagreen]
solve[vbcol=seagreen]
> error?
>
>
| |
| Aniello 2004-11-29, 7:48 am |
| Greg,
thanks for your suggestion. If there isn't a general approach to speed up
BizTalk timeout (in synchronous request/response to/from web service), this
solution could work properly, because Orchestration 1 and Orchestration 2
are on the same machine and use the same MessageBoxDb.
Is there some examples or tutorial on how to realize this asynchronous
invocation? Do you know where can I find some support to perform this
action?
Thanks,
Aniello.
"Greg Forsythe" <greg.forsythe@unisys.com> wrote in message
news:esVgQNg1EHA.3092@TK2MSFTNGP10.phx.gbl...
> One answer would be to make the process asynchronous and pass the results
of
> the second orchestration as a web service call back to the first.
> Orchestration 1 calls orchestration 2, receives a simple ack, then waits
on
> a receive. Orchestration 2 processes the message and calls orchestration
1.
> This can also be achieved using direct ports rather than web services, as
> long as both orchestrations are running in the same Biztalk group (same
> MessageBoxDb)
>
> Greg
>
> "Aniello" <aniello> wrote in message
> news:OS$lq2e1EHA.324@TK2MSFTNGP10.phx.gbl...
> into
> service
> the
not[vbcol=seagreen]
time[vbcol=seagreen]
for[vbcol=seagreen]
> inside
> are
> first
> the
are[vbcol=seagreen]
> time
first[vbcol=seagreen]
of[vbcol=seagreen]
I[vbcol=seagreen]
> Retry
> solve
>
>
| |
| Greg Forsythe 2004-11-30, 7:46 am |
| I don't know of an examples or tutorials published, maybe someone else know
of some?
Here is a brief example of an async direct port.
It assumes the same messsage type is passed back, to illustrate the
potential hazards of direct ports.
A direct port will subscribe to all messages of the type specified in the
receive shape unless you apply additional filters.
There exists the potential to create endless loops or consuming your
message.
In orchestration 1:
Create a message with two promoted properties: a correlator and a processed
flag
<message xmlns="mymessage">
<correlator/>
<processed>false</processed>
<data>blah</data>
</message>
In a message assignment shape set the correlator to the OrchestrationId and
set the processed flag to false
message(mymessage.correlator) =
System.Convert.ToString(Microsoft.XLANGs.Core.Service.RootService.InstanceId
);
message(mymessage.processed) = false
Create a correlation set based on mymessage.correlator.
Send to a direct port (specify the port binding = Direct and the Partner
Orchestration Port to Message Box) and initialise the correlation set.
Add a receive shape and connect to a receive port with binding = Direct and
the Partner Orchestration Port = Message Box and follow the correlation set
Add a filter on this receive shape mymessage.processed = true
If this filter is not set then we will consume the message we just sent
before it is processed by orchestration 2,
In orchestration 2:
Add receive shape and connect to a receive port with binding = direct and
the Partner Orchestration Port = Message Box)
Add filter to receive shape mymessage.processed = false
Again we don't want to pick up our response message and loop forever
Perform processing
Send copy of the input message after updating the mymessage.processed
property to true; to another Direct port
Hope this helps
Greg
"Aniello" <aniello> wrote in message
news:u3%239Cug1EHA.3092@TK2MSFTNGP10.phx.gbl...
> Greg,
> thanks for your suggestion. If there isn't a general approach to speed up
> BizTalk timeout (in synchronous request/response to/from web service),
this
> solution could work properly, because Orchestration 1 and Orchestration 2
> are on the same machine and use the same MessageBoxDb.
> Is there some examples or tutorial on how to realize this asynchronous
> invocation? Do you know where can I find some support to perform this
> action?
> Thanks,
> Aniello.
>
> "Greg Forsythe" <greg.forsythe@unisys.com> wrote in message
> news:esVgQNg1EHA.3092@TK2MSFTNGP10.phx.gbl...
results[vbcol=seagreen]
> of
> on
> 1.
as[vbcol=seagreen]
into[vbcol=seagreen]
> not
> time
> for
orchestrations[vbcol=seagreen]
for[vbcol=seagreen]
had[vbcol=seagreen]
> are
long[vbcol=seagreen]
> first
tag[vbcol=seagreen]
> of
services[vbcol=seagreen]
> I
this[vbcol=seagreen]
>
>
| |
| Matt Milner 2004-12-02, 7:50 am |
| You are probably better off using direct ports if you need some abstraction
of the called orchestration, but another option is to use the Call
Orchestration shape to just call that orchestration directly and wait for a
response. I'm not sure what this does to your BPEL compliance, but it is
the simplest way to directly call another orchestration.
Otherwise, the direct approach or the ACK/Callback approach mentioned
earlier both get you the same process you want, but without having to deal
with the timeout issue.
Matt
"Greg Forsythe" <greg.forsythe@unisys.com> wrote in message
news:u$Lu1Zs1EHA.2608@TK2MSFTNGP10.phx.gbl...
>I don't know of an examples or tutorials published, maybe someone else know
> of some?
> Here is a brief example of an async direct port.
> It assumes the same messsage type is passed back, to illustrate the
> potential hazards of direct ports.
> A direct port will subscribe to all messages of the type specified in the
> receive shape unless you apply additional filters.
> There exists the potential to create endless loops or consuming your
> message.
>
> In orchestration 1:
> Create a message with two promoted properties: a correlator and a
> processed
> flag
> <message xmlns="mymessage">
> <correlator/>
> <processed>false</processed>
> <data>blah</data>
> </message>
>
> In a message assignment shape set the correlator to the OrchestrationId
> and
> set the processed flag to false
> message(mymessage.correlator) =
> System.Convert.ToString(Microsoft.XLANGs.Core.Service.RootService.InstanceId
> );
> message(mymessage.processed) = false
>
> Create a correlation set based on mymessage.correlator.
> Send to a direct port (specify the port binding = Direct and the Partner
> Orchestration Port to Message Box) and initialise the correlation set.
>
> Add a receive shape and connect to a receive port with binding = Direct
> and
> the Partner Orchestration Port = Message Box and follow the correlation
> set
> Add a filter on this receive shape mymessage.processed = true
> If this filter is not set then we will consume the message we just sent
> before it is processed by orchestration 2,
>
> In orchestration 2:
> Add receive shape and connect to a receive port with binding = direct and
> the Partner Orchestration Port = Message Box)
> Add filter to receive shape mymessage.processed = false
> Again we don't want to pick up our response message and loop forever
>
> Perform processing
>
> Send copy of the input message after updating the mymessage.processed
> property to true; to another Direct port
>
> Hope this helps
> Greg
>
>
>
>
>
>
>
>
>
>
> "Aniello" <aniello> wrote in message
> news:u3%239Cug1EHA.3092@TK2MSFTNGP10.phx.gbl...
> this
> results
> as
> into
> orchestrations
> for
> had
> long
> tag
> services
> this
>
>
>
|
|
|
|
|