Rules engine failure
Web Server forum
Back To The Forum Home!Search!Private Messaging System

Web Server Talk Web Server Talk > Web Servers reviews > BizTalk Server > BizTalk Server Orchestration > Rules engine failure




  Last Thread   Next Thread Next
  Show Printable Version Email this Page Subscribe to this Thread      Post New Thread    Post A Reply      

    Rules engine failure  
Jeremy Chapman


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
05-16-06 06:14 PM

Last night we had an issue where connection to our data center was lost.
Our biztalk databases are hosted on servers in the datacenter, so in this
case the biztalk servers were not able to access the databases.  Typically
this doesn't pose too much of a problem except when it comes to the rules
engine.  We have a biztalk solution which involves an orchestration calling
a rules engine.  At some point during our datacenter outage,  biztalk
suspended the orchestration (not resumable) because the rules engine could
not be called.  Shouldn't biztalk do a certain number of retries rather than
just suspending the message outright?  Second, why is it not resumable?  Is
there any way of setting retry values and behavior?



Microsoft.RuleEngine.RuleStoreCompatibilityCheckException: Error checking
compatibility of database "BizTalkRuleEngineDb" on server "dc1serv53\QA".
Database is either not configured as a rule engine database, or you do not
have sufficient permissions to access the database. --->
System.Data.SqlClient.SqlException: General network error.  Check your
network documentation.

--- End of inner exception stack trace ---


Server stack trace:
at Microsoft.RuleEngine.SqlRuleStore.TestConnection()

at Microsoft.RuleEngine.SqlRuleStore..ctor(String location)

at
Microsoft.BizTalk.RuleEngineExtensions.RuleSetDeploymentDriver.GetRuleStore(
)

at
Microsoft.RuleEngine.RemoteUpdateService.RemoteUpdateService.ValidateUser()

at
Microsoft.RuleEngine.RemoteUpdateService.RemoteUpdateService.RegisterPolicyA
 uthorizationUpdateCallback(RemoteUpdateC
allbackRepeater
proc)

at
System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(Met
hodBase
mb, Object[] args, Object server, Int32 methodPtr, Boolean
fExecuteInContext, Object[]& outArgs)

at
System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessa
ge
msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg)

at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
msgData, Int32 type)

at
Microsoft.RuleEngine.IRuleEngineUpdateServiceInterface.RegisterPolicyAuthori
 zationUpdateCallback(RemoteUpdateCallbac
kRepeater
proc)

at
Microsoft.RuleEngine.RemoteUpdateService.RemoteUpdateServiceProxy.RegisterPo
 licyAuthorizationUpdateCallback(RemoteUp
dateCallbackRepeater
proc)

at
System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(Met
hodBase
mb, Object[] args, Object server, Int32 methodPtr, Boolean
fExecuteInContext, Object[]& outArgs)

at
System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessa
ge
msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [1]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg)

at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
msgData, Int32 type)

at
Microsoft.RuleEngine.RemoteUpdateService.RemoteUpdateServiceProxy.RegisterPo
 licyAuthorizationUpdateCallback(RemoteUp
dateCallbackRepeater
proc)

at Microsoft.RuleEngine.RuleEngineCache..ctor()

at Microsoft.RuleEngine.Policy..ctor(String policyName)

at
InteriorHealth.Orchestrations.PromisADT.RouteADT.segment3(StopConditions
stopOn)

at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s,
StopConditions stopCond, Exception& exp)
Microsoft.RuleEngine.RuleStoreCompatibilityCheckException
Scoped@
RouteADT.??__scope0
RouteADT.traCallRule
RouteADT.RouteADT
ADT_03.ADT_03
00000000-0000-0000-0000-000000000000







[ Post a follow-up to this message ]



    Re: Rules engine failure  
cduffy@ideacorporation.com


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
05-17-06 12:14 AM

Hi Jeremy,

I believe it was suspended (not resumable) because the call to the
RuleEngine did not have an exception handler.  As far as I know
un-handled exceptions result in suspensions that are not resumable.

If the call to the RuleEngine is contained within a scope and the
transaction type is set to Long Running, an exception handler can be
added.  In your case I think you would want to start by handling
'System.Data.SqlClient.SqlException' with a 'suspend' shape. Exceptions
of this type will result in a suspended resumable message when properly
handled.

Hope this helps
Chuck

Jeremy Chapman wrote:
> Last night we had an issue where connection to our data center was lost.
> Our biztalk databases are hosted on servers in the datacenter, so in this
> case the biztalk servers were not able to access the databases.  Typically
> this doesn't pose too much of a problem except when it comes to the rules
> engine.  We have a biztalk solution which involves an orchestration callin
g
> a rules engine.  At some point during our datacenter outage,  biztalk
> suspended the orchestration (not resumable) because the rules engine could
> not be called.  Shouldn't biztalk do a certain number of retries rather th
an
> just suspending the message outright?  Second, why is it not resumable?  I
s
> there any way of setting retry values and behavior?
>
>
>
> Microsoft.RuleEngine.RuleStoreCompatibilityCheckException: Error checking
> compatibility of database "BizTalkRuleEngineDb" on server "dc1serv53\QA".
> Database is either not configured as a rule engine database, or you do not
> have sufficient permissions to access the database. --->
> System.Data.SqlClient.SqlException: General network error.  Check your
> network documentation.
>
>    --- End of inner exception stack trace ---
>
>
> Server stack trace:
>    at Microsoft.RuleEngine.SqlRuleStore.TestConnection()
>
>    at Microsoft.RuleEngine.SqlRuleStore..ctor(String location)
>
>    at
> Microsoft.BizTalk.RuleEngineExtensions.RuleSetDeploymentDriver.GetRuleStor
e()
>
>    at
> Microsoft.RuleEngine.RemoteUpdateService.RemoteUpdateService.ValidateUser(
)
>
>    at
> Microsoft.RuleEngine.RemoteUpdateService.RemoteUpdateService.RegisterPolic
 yAuthorizationUpdateCallback(RemoteUpdat
eCallbackRepeater
> proc)
>
>    at
> System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(M
ethodBase
> mb, Object[] args, Object server, Int32 methodPtr, Boolean
> fExecuteInContext, Object[]& outArgs)
>
>    at
> System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMes
sage
> msg, Int32 methodPtr, Boolean fExecuteInContext)
>
> Exception rethrown at [0]:
>    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessa
ge
> reqMsg, IMessage retMsg)
>
>    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
> msgData, Int32 type)
>
>    at
> Microsoft.RuleEngine.IRuleEngineUpdateServiceInterface.RegisterPolicyAutho
 rizationUpdateCallback(RemoteUpdateCallb
ackRepeater
> proc)
>
>    at
> Microsoft.RuleEngine.RemoteUpdateService.RemoteUpdateServiceProxy.Register
 PolicyAuthorizationUpdateCallback(Remote
UpdateCallbackRepeater
> proc)
>
>    at
> System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(M
ethodBase
> mb, Object[] args, Object server, Int32 methodPtr, Boolean
> fExecuteInContext, Object[]& outArgs)
>
>    at
> System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMes
sage
> msg, Int32 methodPtr, Boolean fExecuteInContext)
>
> Exception rethrown at [1]:
>    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessa
ge
> reqMsg, IMessage retMsg)
>
>    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
> msgData, Int32 type)
>
>    at
> Microsoft.RuleEngine.RemoteUpdateService.RemoteUpdateServiceProxy.Register
 PolicyAuthorizationUpdateCallback(Remote
UpdateCallbackRepeater
> proc)
>
>    at Microsoft.RuleEngine.RuleEngineCache..ctor()
>
>    at Microsoft.RuleEngine.Policy..ctor(String policyName)
>
>    at
> InteriorHealth.Orchestrations.PromisADT.RouteADT.segment3(StopConditions
> stopOn)
>
>    at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s,
> StopConditions stopCond, Exception& exp)
> Microsoft.RuleEngine.RuleStoreCompatibilityCheckException
> Scoped@
> RouteADT.??__scope0
> RouteADT.traCallRule
> RouteADT.RouteADT
> ADT_03.ADT_03
> 00000000-0000-0000-0000-000000000000






[ Post a follow-up to this message ]



    Re: Rules engine failure  
cduffy@ideacorporation.com


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
05-17-06 06:17 AM

Whoops - I think I posted an goofball response.  Somethings telling me
calls to the rules engine have to be within an atomic scope, and that
eliminates an exception handler.  Greater minds than mine will have to
provide an answer :-)

Chuck






[ Post a follow-up to this message ]



    Sponsored Links  




 





   All times are GMT. The time now is 12:52 AM.      Post New Thread    Post A Reply      
  Last Thread   Next Thread Next


Most Popular forums 

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is OFF
 
Medical and Health forum | Computer Games Reviews | Graphics design forum

Back To The Top
Home | Usercp | Faq | Register