|
Home > Archive > BizTalk Server > July 2004 > Slowing Down Biztalk 2002 to process 1 document at a time
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 |
Slowing Down Biztalk 2002 to process 1 document at a time
|
|
| Tony K 2004-07-12, 5:51 pm |
| We have made tremendous strides in speeding up Biztalk, but now we have a
new requirement to assign a unique id to each document we process. When we
attempt to do this using the SQL database within an AIC, we get timeout
errors waiting for server.
I have read some articles about how to slow done Biztalk and have tried
those: 1 being to reduce the number of worker threads per processer (we set
it to 1). The other being to increase the time between Biztalk Server
Scheduler calls.
The "time between" option only seems to slow down the amount of time before
Biztalk sends the entire work queue through the AIC. It doesn't appear to
cause Biztalk to wait the specifiied number of milliseconds between each
document submission to the AIC.
Anyone have any idea how to delay Biztalk between document submissions to
the AIC?
We receive an EDI file, which Biztalk splits into multiple documents (more
than one ST/SE per GS/GE). So, the result is multiple docs in the work
queue - all trying to process at the exact same time.
| |
| Jeff Lynch 2004-07-12, 5:51 pm |
| Tony,
Another way to add a unique ID to each document processed is by using a
scripting functoid in a map that contains the following vbscript. Connect
this to a field in the outbound document and it will output a guid.
Function MyFunction0( )
MyFunction0 = left(createobject("scriptlet.typelib").guid,38)
End Function
--
Jeff Lynch
"A BizTalk Enthusiast"
"Tony K" <tkurzendoerfer@comcast.net.NOSPAM> wrote in message
news:epcUioCaEHA.2408@tk2msftngp13.phx.gbl...
> We have made tremendous strides in speeding up Biztalk, but now we have a
> new requirement to assign a unique id to each document we process. When
we
> attempt to do this using the SQL database within an AIC, we get timeout
> errors waiting for server.
>
> I have read some articles about how to slow done Biztalk and have tried
> those: 1 being to reduce the number of worker threads per processer (we
set
> it to 1). The other being to increase the time between Biztalk Server
> Scheduler calls.
>
> The "time between" option only seems to slow down the amount of time
before
> Biztalk sends the entire work queue through the AIC. It doesn't appear
to
> cause Biztalk to wait the specifiied number of milliseconds between each
> document submission to the AIC.
>
> Anyone have any idea how to delay Biztalk between document submissions to
> the AIC?
>
> We receive an EDI file, which Biztalk splits into multiple documents (more
> than one ST/SE per GS/GE). So, the result is multiple docs in the work
> queue - all trying to process at the exact same time.
>
>
| |
| Ananth Krishna 2004-07-12, 5:51 pm |
|
For BTS 2002;you can do this with a singleton orchestration where we you
have one continously running orchestration monitoring an msmq queue. To
launch this orchestration for the first time; you use a vbscript.
the orchestration has a loop in which it monitors a queue, receives one
message; processes it; and then goes back to the first step where it checks
if there is anyother message...it sleeps if there is nothing there in the
queue. in this manner you process one message at a time from the queue
you could probably in one of the steps in the orchestration call out to a
com/.net component that has some delay logic in it. and in the next step use
Submit to send to an AIC. ( i recall someone doing this...search in google
on delay in .net component)
htp
Cheers~
Ananth Krishna
"Tony K" <tkurzendoerfer@comcast.net.NOSPAM> wrote in message
news:epcUioCaEHA.2408@tk2msftngp13.phx.gbl...
> We have made tremendous strides in speeding up Biztalk, but now we have a
> new requirement to assign a unique id to each document we process. When
we
> attempt to do this using the SQL database within an AIC, we get timeout
> errors waiting for server.
>
> I have read some articles about how to slow done Biztalk and have tried
> those: 1 being to reduce the number of worker threads per processer (we
set
> it to 1). The other being to increase the time between Biztalk Server
> Scheduler calls.
>
> The "time between" option only seems to slow down the amount of time
before
> Biztalk sends the entire work queue through the AIC. It doesn't appear
to
> cause Biztalk to wait the specifiied number of milliseconds between each
> document submission to the AIC.
>
> Anyone have any idea how to delay Biztalk between document submissions to
> the AIC?
>
> We receive an EDI file, which Biztalk splits into multiple documents (more
> than one ST/SE per GS/GE). So, the result is multiple docs in the work
> queue - all trying to process at the exact same time.
>
>
| |
| Tony K 2004-07-13, 5:50 pm |
| Maybe I should ask the question another way.
When a "timeout" occurs the AIC can trap the error (try - catch in c#), but
is there a way to force the document into the "RETRY QUEUE" instead of the
document defaulting to the "SUSPENSE QUEUE". This would allow the document
to be processed on subsequent resubmits without manual intervention.
Thanks
"Tony K" <tkurzendoerfer@comcast.net.NOSPAM> wrote in message
news:epcUioCaEHA.2408@tk2msftngp13.phx.gbl...
> We have made tremendous strides in speeding up Biztalk, but now we have a
> new requirement to assign a unique id to each document we process. When
we
> attempt to do this using the SQL database within an AIC, we get timeout
> errors waiting for server.
>
> I have read some articles about how to slow done Biztalk and have tried
> those: 1 being to reduce the number of worker threads per processer (we
set
> it to 1). The other being to increase the time between Biztalk Server
> Scheduler calls.
>
> The "time between" option only seems to slow down the amount of time
before
> Biztalk sends the entire work queue through the AIC. It doesn't appear
to
> cause Biztalk to wait the specifiied number of milliseconds between each
> document submission to the AIC.
>
> Anyone have any idea how to delay Biztalk between document submissions to
> the AIC?
>
> We receive an EDI file, which Biztalk splits into multiple documents (more
> than one ST/SE per GS/GE). So, the result is multiple docs in the work
> queue - all trying to process at the exact same time.
>
>
| |
| Ananth Krishna 2004-07-13, 5:50 pm |
| Not that i am aware off...however what i have done in the past is you drop
the message to custom queue in msmq from your AIC....have a queue receive
function pick it up from there and drop into a queue where the normal
process picks it up. this assumes that the normal process also is launched
off a queue > queue receive function > channel > AIC port...
cheers~
Ananth Krishna
"Tony K" <tkurzendoerfer@comcast.net.NOSPAM> wrote in message
news:OsOv7ROaEHA.2056@TK2MSFTNGP12.phx.gbl...
> Maybe I should ask the question another way.
>
> When a "timeout" occurs the AIC can trap the error (try - catch in c#),
but
> is there a way to force the document into the "RETRY QUEUE" instead of the
> document defaulting to the "SUSPENSE QUEUE". This would allow the
document
> to be processed on subsequent resubmits without manual intervention.
>
> Thanks
>
>
> "Tony K" <tkurzendoerfer@comcast.net.NOSPAM> wrote in message
> news:epcUioCaEHA.2408@tk2msftngp13.phx.gbl...
a[vbcol=seagreen]
When[vbcol=seagreen]
> we
> set
> before
> to
to[vbcol=seagreen]
(more[vbcol=seagreen]
>
>
| |
| Andres Felipe Arguello 2004-07-14, 5:50 pm |
| I dont know what is the point to send to a retry queue,
but if you need to process 1 xlang at time then, put the orchestation in a
datapool(in the start action double click and change to com+ pool and select
a pool, then in the com+ xlang pooling select the object of the pool that
you select and change the pool to 1 to 1 objects in the pool)
"Tony K" <tkurzendoerfer@comcast.net.NOSPAM> wrote in message
news:OsOv7ROaEHA.2056@TK2MSFTNGP12.phx.gbl...
> Maybe I should ask the question another way.
>
> When a "timeout" occurs the AIC can trap the error (try - catch in c#),
but
> is there a way to force the document into the "RETRY QUEUE" instead of the
> document defaulting to the "SUSPENSE QUEUE". This would allow the
document
> to be processed on subsequent resubmits without manual intervention.
>
> Thanks
>
>
> "Tony K" <tkurzendoerfer@comcast.net.NOSPAM> wrote in message
> news:epcUioCaEHA.2408@tk2msftngp13.phx.gbl...
a[vbcol=seagreen]
When[vbcol=seagreen]
> we
> set
> before
> to
to[vbcol=seagreen]
(more[vbcol=seagreen]
>
>
| |
|
| You may try to write your sql queries with the With(nolock) hint.
"Tony K" <tkurzendoerfer@comcast.net.NOSPAM> wrote in message
news:epcUioCaEHA.2408@tk2msftngp13.phx.gbl...
> We have made tremendous strides in speeding up Biztalk, but now we have a
> new requirement to assign a unique id to each document we process. When
we
> attempt to do this using the SQL database within an AIC, we get timeout
> errors waiting for server.
>
> I have read some articles about how to slow done Biztalk and have tried
> those: 1 being to reduce the number of worker threads per processer (we
set
> it to 1). The other being to increase the time between Biztalk Server
> Scheduler calls.
>
> The "time between" option only seems to slow down the amount of time
before
> Biztalk sends the entire work queue through the AIC. It doesn't appear
to
> cause Biztalk to wait the specifiied number of milliseconds between each
> document submission to the AIC.
>
> Anyone have any idea how to delay Biztalk between document submissions to
> the AIC?
>
> We receive an EDI file, which Biztalk splits into multiple documents (more
> than one ST/SE per GS/GE). So, the result is multiple docs in the work
> queue - all trying to process at the exact same time.
>
>
| |
| Tony K 2004-07-21, 5:50 pm |
| Thanks, for everyone's suggestions.
We don't use Orchestration or the Scheduler.
We can't use With (NOLOCK) because the intent is create a unique Document
Number, which is sequentially assigned. The number is not a GUID because we
are limited to 15 characters so we create a number like
ccyymmdd + seqnumber with 7 digits.
We manually resubmit documents in the suspense queue that have timed out, so
we are writing some C# code to automate the resubmit as follows:
public void ResubmitAllSuspendedQueueItems(string txtBiztalkServer)
{
SuspendedQueue sq = new SuspendedQueue(txtBiztalkServer);
foreach(ManagementObject obj in sq.SuspendedQueueItems())
{
Resubmit(obj);
Thread.Sleep(3000);
}
}
public void Resubmit(ManagementObject obj)
{
try
{
obj.InvokeMethod("Resubmit", null, null);
}
catch (Exception e)
{
throw new Exception(e.Message,e);
}
}
Chris" <chris.tucker@nospampodassoc.com> wrote in message
news:uiBY9nqaEHA.3716@TK2MSFTNGP11.phx.gbl...
> You may try to write your sql queries with the With(nolock) hint.
> "Tony K" <tkurzendoerfer@comcast.net.NOSPAM> wrote in message
> news:epcUioCaEHA.2408@tk2msftngp13.phx.gbl...
a[vbcol=seagreen]
When[vbcol=seagreen]
> we
> set
> before
> to
to[vbcol=seagreen]
(more[vbcol=seagreen]
>
>
|
|
|
|
|