Re: System.OutOfMemoryException was thrown
- From: Matt Meleski <MattMeleski@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Mon, 2 Oct 2006 10:35:38 -0700
From the additional information that was provided, I now think your processis something like below:
1) Receive Location configured with the Sql Adapter picks up messages that
are approx. 1KB in size.
2) Send Port subscribes to the above messages and then Send Ports Send
Pipeline
then Parses to Flat File. Send port uses the file adapter to dump messages
to file folder.
3) Orchestration receive flat flat, and dynamically configures MQ header.
Logical Port in orchestration is then bound to physical MQ port end point.
I think that is it, but it may be possible that you are using other custom
components in your process ?
From my guess above I cannot say what exacly what the problem is.What I do suggest is to break the processes into smaller disconnected pieces
(ie only run processes 1) 2) and 3) separately) , to narrow down on where the
excessive memory usage may be occurring. Once you have isolated to 1) 2) or
3) then you can narrow down on the individual components that may be causing
the problem.
Read the below blog entry.
http://blogs.msdn.com/biztalkperformance/archive/2005/04/16/408866.aspx
It goes into much more detail on memory issues, and how to find them.
Matt
"wask" wrote:
Hi Matt,.
Thanks for your help.
I am calling a stored procedure via the sql adapter and receiving an
XML message and a Flat File Assembler in a send pipeline parses the xml
message to a flat file and i send the flat file message out to a floder
then my orchestration pick this flat file from my floder and send to MQ
Series.
I am using Orchestration because i have to send some MQ header along
with my message.
Your Question :I am curious as to the size of the messages being
returned by Sql server,
How big are they ? If they are large can you bring them back in
batches with smaller file sizes.
(ie write logic in you proc to return fewer rows at a time)
Answer: My message size is 1 KB. i don't think it is big.
I don't no how to turn Orchestration into singleton
Note: The above Errors which i mention it showing ever 15 min in my
Application Event Log.Errors are showing even when my message are not
processing.
Can you tell me what will be the problem. I can't find the solution.
thanks
wask
Matt Meleski wrote:
I am assuming the below:
1) You are calling a stored procedure from an orchestration via the sql
adapter and receiving an XML message from the stored procedure back
in your orchestration.
2) You then send the message out of your orchestration to a send port and
a Flat File Assembler in a send pipeline parses the xml message to a flat
file. The flat file message is then sent to MQ.
if the above points are true:
a) I am curious as to the size of the messages being returned by Sql server,
How big are they ?
If they are large can you bring them back in batches with smaller file sizes.
(ie write logic in you proc to return fewer rows at a time)
b) How many MQSCorrelationSetOrchestration.Orchestration_1 orchestration
instances are running at the same time. If there are many instances running
simultaneously, you may have to
turn MQSCorrelationSetOrchestration.Orchestration_1 into a singleton.
You can also try the below. Again this is assuming points 1) and 2) are true.
1) Do not use the Sql Adapter to call the stored procedure. Write your own
Ado.Net helper component, that will call the stored procedure and process the
return results.
2) Add an Atomic scope shape to your orchestration and call the .Net helper
component there. Declare the message for your returned xml message from
the proc within the scope of the atomic scope shape.
ie. In the orchestration view, find the atomic scope shape and then declare
the
message in there. Within the atomic scope shape also add the send shape for
the message going out of the orchestration.
3) If you are using BTS2006, check the Ordered Delivery check box for the MQ
Send
port.
4) Read the below blog:
http://objectsharp.com/blogs/matt/archive/2005/08/31/3209.aspx
5) Or just get rid of your orchestration. Create a Receive port/Receive
location using the Sql Adapter that will poll the database, and then let the
send port for the MQ directly subscribe to the returned messages from the
database.
Matt
"wask" wrote:
Hi,
i am getting all this error in production. I have 4 G of memory in my
production server. i am pull the records from SQl Server and pass
through orchestraton as a flat file to MQ Series.
1.A catastrophic failure occurred in the BizTalk service. The service
will shutdown and auto-restart in 1 minute. If the database is still
unavailable, this cycle will be repeated.
Error message: Exception of type System.OutOfMemoryException was
thrown.
Error source: mscorlib
BizTalk host name: BizTalkServerApplication
Windows service name: BTSSvc{6134234E-B19A-466B-96A5-97E62E27F677}
2. Uncaught exception terminated service
MQSCorrelationSetOrchestration.Orchestration_1(93dc8008-a812-99a1-4893-386ace3b0bb9),
instance 139d5e4c-1c57-474f-998f-e941c111250b
Exception occurred when persisting state to the database.
Exception type: PersistenceException
Source: Microsoft.XLANGs.BizTalk.Engine
Target Site: Void Commit()
Help Link:
Additional error information:
A batch item failed persistence Item-ID
25b7623f-1854-40c2-a6dc-8835bbb58b16 OperationType MAIO_CommitBatch
Status -1061151931 ErrorInfo The database cannot be accessed because
the system is recovering from an earlier database failure. .
Exception type: PersistenceItemException
Source:
Target Site:
Help Link:
Additional error information:
Exception occurred when persisting state to the database.
Exception type: PersistenceException
Source: Microsoft.XLANGs.BizTalk.Engine
Target Site: Void
Commit(Microsoft.BizTalk.Agent.Interop.IBTMessageBatchEx[],
Microsoft.XLANGs.Core.Segment,
Microsoft.BizTalk.Agent.Interop.IBTOperationStatus ByRef)
Help Link:
Additional error information:
A batch item failed persistence Item-ID
25b7623f-1854-40c2-a6dc-8835bbb58b16 OperationType MAIO_CommitBatch
Status -1061151931 ErrorInfo The database cannot be accessed because
the system is recovering from an earlier database failure. .
Exception type: PersistenceItemException
Source:
Target Site:
Help Link:
Additional error information:
3. Uncaught exception terminated service
MQSCorrelationSetOrchestration.Orchestration_1(93dc8008-a812-99a1-4893-386ace3b0bb9),
instance c47d9b7c-1c97-468e-a928-7613a001cc7c
Exception from HRESULT: 0xC0C01B14.
Exception type: COMException
Source: Microsoft.XLANGs.BizTalk.Engine
Target Site: Void Commit()
Help Link:
Additional error information:
4. Failed while creating a
MQSCorrelationSetOrchestration.Orchestration_1 service.
Exception type: ServiceCreationException
Source:
Target Site:
Help Link:
Additional error information:
Exception of type System.OutOfMemoryException was thrown.
Exception type: OutOfMemoryException
Source:
Target Site:
Help Link:
Additional error information:
Can any one help me.It is kind of urgent.
thanks
wask
- Prev by Date: Executing SQL commands from C# code.
- Next by Date: Re: HWS InterruptActivityFlow
- Previous by thread: Executing SQL commands from C# code.
- Next by thread: RE: Errors going from message only to orchestration
- Index(es):
Relevant Pages
|