- 10 minutes to read

BizTalk Server Logging Prerequisites for Nodinite

Unlock secure, high-performance BizTalk Server logging and monitoring with Nodinite. This page provides everything you need to connect BizTalk DTA data to Nodinite, ensuring robust integration, compliance, and visibility for your business-critical processes.

On this page, you’ll learn how to:

  • ✅ Connect BizTalk DTA databases to Nodinite for seamless, secure logging
  • ✅ Set up Linked Servers and firewall rules for reliable, uninterrupted data flow
  • ✅ Configure user rights, SQL permissions, and Active Directory for compliance
  • ✅ Avoid common pitfalls with clear, actionable steps

How BizTalk Data Flows to Nodinite

graph TD User[BizTalk Admin/User] --> BizTalkDTA[BizTalk DTA Database] BizTalkDTA -->|Linked Server|NodiniteSQL[Nodinite SQL Server] NodiniteSQL --> LoggingService[Nodinite Logging Service] LoggingService --> NodiniteApp[Nodinite App Server]

This diagram shows how BizTalk DTA data flows through Linked Servers to Nodinite’s Logging Service and App Server for monitoring and analysis.


Step 1: Prepare Linked Servers

Nodinite requires Linked Servers to be configured on the Configuration Database SQL instance to access BizTalk databases (BizTalkMgmtDb and BizTalkDTADb). Linked servers must be created before you configure and enable logging.

Tip

See the complete Linked Servers page for:

  • When and why linked servers are required (always, regardless of database distribution)
  • Configuration commands for default instances, named instances, clusters, and AOAG
  • RPC and RPC Out settings for distributed transactions
  • Security context configuration for Windows authentication
  • Troubleshooting common linked server connectivity issues

Note

If BizTalkMGMTDb and BizTalkDTADb are on different SQL Server instances, create two Linked Servers.


Step 2: Configure Firewall Settings

BizTalk Server Logging has no agent: the Nodinite Logging Service on the Core Services Server queries the BizTalk databases through a Linked Server on the SQL Server instance that hosts the Configuration Database. The diagram shows every host involved; each arrow starts at the side that opens the connection.

graph LR subgraph "Nodinite Core Services Server" roLoggingService(fa:fa-hard-drive Logging Service) end subgraph "SQL Server (Nodinite databases)" roNodiniteSQL(fa:fa-database Configuration and Log Databases + Linked Server) end subgraph "Target: BizTalk SQL Server" roBTDTADb(fa:fa-database BizTalkDTADb) roBTMgmtDB(fa:fa-database BizTalkMgmtDb) end subgraph "Domain Controller" roDC(fa:fa-building Active Directory) end subgraph "DNS Server" roDNS(fa:fa-signs-post DNS) end roLoggingService --> |"1433"| roNodiniteSQL roNodiniteSQL --> |"1433, 135 + RPC 50000-50200 (MSDTC)"| roBTDTADb roNodiniteSQL --> |"1433, 135 + RPC 50000-50200 (MSDTC)"| roBTMgmtDB roBTDTADb -.-> |"135 + RPC (MSDTC)"| roNodiniteSQL roLoggingService --> |"88, 389, 636, 445"| roDC roNodiniteSQL --> |"88, 389, 636, 445"| roDC roLoggingService --> |"53"| roDNS roNodiniteSQL --> |"53"| roDNS

Network diagram: the Logging Service calls its own SQL Server, and the Linked Server on that instance copies tracking data from the BizTalk databases. Both servers use Kerberos against the Domain Controller. The dashed arrow is MSDTC traffic back from the BizTalk SQL Server.

Note

There is no Agent Server in this setup. When the Nodinite databases and the BizTalk databases run on the same SQL Server instance (single-server solutions), you need no firewall rule and no Kerberos delegation.

Between the Logging Service and the Nodinite SQL Server

Direction Source Destination Protocol Port(s) Purpose Notes
Outbound Core Services Server SQL Server (Nodinite databases) TCP 1433 SQL Server default instance Named instances use their own port, plus UDP 1434 for SQL Server Browser. Usually already open for the Logging Service

Between the Nodinite SQL Server and the BizTalk SQL Server

The Linked Server connects from the Nodinite SQL Server instance to every instance that hosts BizTalkDTADb or BizTalkMgmtDb; create one Linked Server per instance. Linked Server calls with RPC and RPC Out use MSDTC distributed transactions, which need RPC in both directions. See SQL Server Firewall Configuration for Always On Availability Groups (AOAG) and connectivity tests.

Direction Source Destination Protocol Port(s) Purpose Notes
Outbound SQL Server (Nodinite databases) Target (BizTalk SQL Server) TCP 1433 SQL Server default instance Default port; can be changed in SQL Server Configuration Manager
Outbound SQL Server (Nodinite databases) Target (BizTalk SQL Server) TCP 49152–65535 SQL Server named instances Named instances use a dynamic port by default; set a static port and open only that one
Outbound SQL Server (Nodinite databases) Target (BizTalk SQL Server) UDP 1434 SQL Server Browser Resolves the port of a named instance; not needed when the Linked Server names the port
Outbound SQL Server (Nodinite databases) Target (BizTalk SQL Server) TCP 135 MSDTC / RPC Endpoint Mapper Distributed transactions and Linked Server communication
Outbound SQL Server (Nodinite databases) Target (BizTalk SQL Server) TCP 50000–50200 MSDTC RPC dynamic ports The range is set in the Windows Registry; check your environment. See 'Configure RPC dynamic port allocation'
Inbound Target (BizTalk SQL Server) SQL Server (Nodinite databases) TCP 135, 50000–50200 MSDTC RPC The remote transaction manager calls back; required for distributed transactions

Between the servers and the Domain Controller

Required for Windows authentication. In distributed solutions, the Linked Server forwards the Logging Service identity to the BizTalk SQL Server (a Kerberos double hop), so set "Trusted for delegation" and register Service Principal Names (SPN) as described in Step 6.

Direction Source Destination Protocol Port(s) Purpose Notes
Outbound Core Services Server, SQL Server (Nodinite databases) Domain Controller TCP/UDP 88 Kerberos authentication Required for domain authentication. Review 'Microsoft Kerberos'
Outbound Core Services Server, SQL Server (Nodinite databases) Domain Controller TCP/UDP 389 LDAP Standard LDAP queries
Outbound Core Services Server, SQL Server (Nodinite databases) Domain Controller TCP 636 LDAPS (Secure LDAP) Required for LDAPS authentication or querying certificates from AD
Outbound Core Services Server, SQL Server (Nodinite databases) Domain Controller TCP 445 SMB Used if Group Policy or file-based certificate access is needed
Inbound Domain Controller Core Services Server, SQL Server (Nodinite databases) TCP/UDP Same as outbound Response to Kerberos / LDAP Usually allowed by stateful firewall inspection

Between the servers and DNS

Direction Source Destination Protocol Port(s) Purpose Notes
Outbound Core Services Server DNS Server TCP/UDP 53 Name resolution Resolve the Nodinite SQL Server and the Domain Controller
Outbound SQL Server (Nodinite databases) DNS Server TCP/UDP 53 Name resolution Resolve the BizTalk SQL Server instances (Linked Server targets) and the Domain Controller. A local hosts file can replace DNS

Important

Stateful Firewalls: Most Windows Firewall implementations are stateful, so response traffic for established outbound connections is allowed automatically. The inbound response rules above are for reference and troubleshooting; the MSDTC callback is a new connection and needs its own rule.


Step 3: Set Up Security and User Rights

The Nodinite Logging Service accesses BizTalk databases through Linked Servers. The account that needs permissions depends on your linked server security context configuration:

  • Passthrough authentication (recommended): The service account running the Logging Service needs SQL permissions on BizTalk databases
  • Impersonation: The account specified in the linked server security mapping needs SQL permissions

Tip

See comprehensive guides for configuring service accounts:

  • gMSA accounts — Group Managed Service Accounts with automatic 30-day password rotation (Nodinite v7+)
  • Logon as a Service right — Traditional service accounts with manual password management

For detailed information about linked server security context (passthrough vs impersonation), see the Linked Servers guide.

Account Type Best Practices:

  • ✅ Domain accounts (recommended) — Required for distributed solutions with Kerberos authentication
  • ✅ gMSA accounts (Nodinite v7+) — Automatic password rotation, enhanced security
  • ⚠️ Local accounts — Only for single-server test/dev setups
  • ⚠️ SQL accounts — Temporary workaround if BizTalk SQL Instance allows mixed logins; Windows authentication with Kerberos is recommended for production

Step 4: Enable BizTalk Tracking (Critical Prerequisite)

BizTalk tracking must be enabled for Nodinite to log any data. The Nodinite Logging Agent copies tracked events from BizTalkDTADb—if tracking is not enabled on BizTalk Receive Ports, Send Ports, or Orchestrations, no log events will be captured.

Understanding BizTalk Tracking Data Flow

graph LR A[BizTalk Port<br/>Tracking: OFF] -->|No Data Written| B[BizTalkDTADb<br/>Empty] B -->|Nothing to Copy| C[Nodinite<br/>No Logs] D[BizTalk Port<br/>Tracking: ON] -->|Data Written| E[BizTalkDTADb<br/>Has Events] E -->|Copies Events| F[Nodinite<br/>Logs Available] style A fill:#FF6B6B style B fill:#FFD700 style C fill:#FF6B6B style D fill:#90EE90 style E fill:#90EE90 style F fill:#90EE90

BizTalk tracking must be enabled (Message Body and/or Message Properties) for Nodinite to capture log events. Without tracking, BizTalkDTADb contains no data to copy.

How to Enable Tracking in BizTalk Admin Console

To enable tracking on BizTalk ports and orchestrations:

  1. Open BizTalk Server Administration Console on any BizTalk server
  2. Navigate to the artifact:
    • Receive Ports: Applications → [Application Name] → Receive Ports
    • Send Ports: Applications → [Application Name] → Send Ports
    • Orchestrations: Applications → [Application Name] → Orchestrations
  3. Right-click the port/orchestration and select Properties
  4. Click the Tracking tab
  5. Enable tracking options:
    • ✅ Track Message Bodies - Request message before port processing (recommended for inbound messages)
    • ✅ Track Message Bodies - Request message after port processing (recommended for outbound messages)
    • ✅ Track Message Properties - Request message before port processing (for context properties)
    • ✅ Track Message Properties - Request message after port processing (for context properties)
  6. Click OK to save

Tip

Recommended tracking configuration:

  • Receive Ports: Enable "Message Body - Before" and "Message Properties - Before" (captures inbound data)
  • Send Ports: Enable "Message Body - After" and "Message Properties - After" (captures outbound data)
  • Orchestrations: Enable "Message Body - Before/After" and "Message Properties - Before/After" only during debugging (high volume)

Important

Enabling tracking on hundreds of ports manually is time-consuming. Use Nodinite's Tracking Management feature to bulk review and update tracking settings for all BizTalk ports and orchestrations from one screen—no need to log into BizTalk nodes or grant Admin Console access.

Tracking Options Explained

Tracking Option What It Captures Use Case Impact
Message Body - Before Full message payload before processing Inbound messages, debugging receive pipelines Medium disk usage
Message Body - After Full message payload after processing Outbound messages, debugging send pipelines Medium disk usage
Message Properties - Before Context properties before processing Track promoted properties (MessageType, Operation, custom) Low disk usage
Message Properties - After Context properties after processing Track properties added by orchestrations/pipelines Low disk usage

This table summarizes BizTalk tracking options and their impact. Nodinite requires at least one option enabled (Message Body or Message Properties) to log events.

Verifying Tracking is Enabled

After enabling tracking, verify that events appear in BizTalkDTADb:

  1. Process a test message through a tracked port
  2. Query BizTalkDTADb to confirm tracking data:
-- Check if tracking events are being written
SELECT TOP 10 
    uidServiceInstanceId,
    dtStartTime,
    strServiceName,
    nServiceStateId
FROM [BizTalkDTADb].[dbo].[dtav_ServiceFacts]
ORDER BY dtStartTime DESC
  1. Wait 60-90 seconds for Nodinite Logging Agent to copy events
  2. Check Nodinite Log View to confirm messages appear

Note

Latency: BizTalk's TrackedMessages_Copy_BizTalkMsgBoxDb SQL Job runs every 60 seconds by default. Nodinite Logging Agent then copies from BizTalkDTADb. Expect 60-90 seconds between BizTalk processing and Nodinite visibility.

Bulk Tracking Management with Nodinite

Stop logging into BizTalk Admin Console to check tracking settings. Nodinite's Tracking Management feature (part of BizTalk Monitoring Agent) provides:

  • ✅ Single-screen overview of tracking settings for ALL ports and orchestrations
  • ✅ Bulk updates – Enable/disable tracking on multiple artifacts at once
  • ✅ No BizTalk Console access required – Manage from Nodinite Web Client
  • ✅ Role-based access – Grant tracking management rights without BizTalk Administrators group membership
  • ✅ Audit logging – All tracking changes are logged for compliance

Learn more: Tracking Management – Bulk update tracking settings for BizTalk ports and orchestrations


Step 5: Assign SQL Permissions

The account in use on the Linked Server that the Nodinite Logging Service use must have these SQL grants set on the following BizTalk SQL instances:

The following table summarizes the required SQL Server permissions for the account used by the Nodinite Logging Service to access BizTalk databases. Each permission ensures secure and reliable data extraction for logging. Review the descriptions and follow the links for more details on each SQL Server role.

Database Permission Description Microsoft Docs Link
All Instances public Allows basic logon rights to the BizTalk SQL Instances public Database Role
BizTalkDTADB db_datareader Grants read access to all tables and views db_datareader
BizTalkDTADB db_ddladmin Allows running DDL statements (e.g., create/alter/drop objects) db_ddladmin
BizTalkMGMTDB db_datareader Grants read access to all tables and views db_datareader
BizTalkMGMTDB db_ddladmin Allows running DDL statements (e.g., create/alter/drop objects) db_ddladmin

This table lists the minimum SQL Server permissions required for the Nodinite Logging Service to access and process BizTalk DTA and MGMT database data. Ensure these grants are set for uninterrupted logging and monitoring.


Step 6: Configure Active Directory for Kerberos

  • For single-server solutions, Kerberos configuration is not required.
  • For distributed solutions (multiple servers/instances), configure Kerberos - Set "Trusted for delegation" on all Windows Servers and register SPNs for all SQL Instances.

Tip

Service Principal Names (SPN) Registration:
See the comprehensive Service Principal Names (SPN) guide for:

  • When SPN registration is required for Windows authentication
  • Registration commands for default instances, named instances, and clusters
  • Scenario-specific examples (including 7-SPN cluster configurations)
  • Validation with Microsoft Kerberos Configuration Manager tool
  • Troubleshooting common Kerberos authentication issues

Step 7: Review DTC/MSDTC Configuration

Ensure MSDTC is configured and running on all involved servers. See the MSDTC guide for details.


Visual Summary: End-to-End BizTalk Logging Flow

flowchart TD subgraph BizTalk SQL Server A[BizTalk DTA Database] B[BizTalk MGMT Database] end subgraph Nodinite SQL Server C[Nodinite SQL Instance] end subgraph Nodinite App Server D[Nodinite Logging Service] E[Nodinite App] end A -- Linked Server --> C B -- Linked Server --> C C -- Logging Service --> D D -- Data to App --> E

This diagram summarizes the end-to-end flow from BizTalk DTA/MGMT databases to Nodinite’s Logging Service and App for monitoring and analytics.


Next Steps