Hi,
We are sending XML message through SoapUI to BizTalk. BizTalk disassemble this message in the receive port with custom pipeline component. In this pipeline component we are calling BizTalk rules with the help of Inrule.runtime dll.
When I send BizTalk message through SoapUI, I am getting follwoing errors in the eventviewer:
1] Source: ᑁ, Message:
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.
Installer Version: N/A
irSDK Version: 3.2.3.6200
HostAppDomainHeapMemoryMB: 32
, Detail: System.Data.OleDb.OleDbException: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.OleDb.OleDbConnection.Open() at ᑁ.ᐁ(ᕍ , CompiledApp , ᕊ , String , ElementIdentifier , ᑂ , ElementValue[] , DataSet& , CommandType& )
2] Source: RuleSession, Message: {EnrollmentEntity::1}/EnrollmentEntity/EnrollmentCheck/CheckAccountAndEnrollment -> Open Connection failed: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied. (Error Code = SqlError) Error processing (ApplyRulesDirective)(Error Code = InternalError) Installer Version: N/A irSDK Version: 3.2.3.6200
2] Source: RuleSession, Message:
{EnrollmentEntity::1}/EnrollmentEntity/EnrollmentCheck/CheckAccountAndEnrollment -> Open Connection failed: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied. (Error Code = SqlError)
Error processing (ApplyRulesDirective)(Error Code = InternalError)
, Detail: Operating System: Microsoft Windows NT 6.1.7601 Service Pack 1
Processor Count: 4
CLR Version: 2.0.50727.5448
CLR Mode: 32-bit
Thread Culture: 1033
ThreadID: 40
Catch Trace:
Error Information:
InRule.Runtime.RuleRuntimeErrorsException: {EnrollmentEntity::1}/EnrollmentEntity/EnrollmentCheck/CheckAccountAndEnrollment -> Open Connection failed: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied. (Error Code = SqlError)
Error processing (ApplyRulesDirective)(Error Code = InternalError):
at InRule.Runtime.RuleServiceConnection.SubmitRequest(RuleServiceRequest request, AggExecStats aggExecStats)
at InRule.Runtime.RuleSession.ᐁ(Boolean )
SessionId: 99b2d33c-6471-4830-8c02-e0265730bc7d
Ruleapp 'AckNackRules': 1
--> Completed Processing Directives <--
---> Finished ApplyRulesDirective <---
-----> Rule Execution Complete <----- (17.599664)
Apply Entity RuleSets: (17.599537 Seconds)
Apply Entity Rules: (0.000062 Seconds)
-----> Rule Execution Begin <-----
---> Processing ApplyRulesDirective <---
--> Start Process Directives <--
The error message from InRule shows that your AckNackRules rule application is making a sql call in the CheckAccountAndEnrollment rule and is failing on opening the database connection. The connection string is defined on the db endpoint within the rule application or can be passed in at runtime. You'll need to determine the validity of the connection string being used.