SAP DI (Data Interface) Server is a technique for communicating DI Server with external components. The DI Server exposes a set of APIs, which help users retrieve data from SAP B1 efficiently. It is a tool that hooks into the system where SAP B1 is installed, providing a set of APIs you can call to get or push data. The external application that needs to access data through the SAP Business One DI Server needs to be installed on the same machine where the DI Server is installed. Once you have the application running on the server, you can take reference of the DI Server Interop dll to get a list of APIs. You can call the DI Server using either Object API, where concrete API object model is defined, or using SOAP over TCP. We recommend the 2nd approach as it gives users the flexibility to call any data using SQL Syntax.
DI Server is an old interface provided by SAP which is currently in passive support. Hence the DI Server issues will never be resolved, so you need a workaround to solve them and use it in live projects. On the other hand, the SAP Business One Service Layer is a new generation of extension API for consuming SAP Business One objects and services via web services with high scalability and high availability. Thus, it is not recommended to use the DI Server for new installations and only go for it if there is no other option.
How to find SAP Business One DI Server in your system?
If you already have DI Server installed, you can go to Taskbar and see if the active SAP B1 Service Manager tool is present or not. If it is present, you can open the tool and check for the DI Server Component.
The service manager tool will help you Start / Stop the DI Server module, configure it, change different settings, etc. It will also help you to handle other services like backup service, license server, etc.
DI Server restart is a common phenomenon. DI Server often stops responding and requires the customer to restart it. This happens either based on the load of data in the service, recurrent errors, or occasional resource crunch in the system. It is important to identify whether it needs a restart or not.
Common errors of DI Server indicating a restart
Let us look at some of the errors that can indicate that restarting the DI server is your only option.
- Error: Failed to connect SLD, make sure SLD server is correct and available
Cause: Although this error can indicate that the Database name is invalid and could not connect directly through DI API, it can also occur when DI Server stops responding. - Error: DI Server Connection failed – Resource Error
Cause: The DI Server Resource Error indicates that the DI Server stopped responding. The fix to this problem would require a DI Server restart. - Error: Failed to load observerDLL.dll/Unable to initialize OBServerDLL.dll
Cause: DI Server extensively uses observer.dll to track changes. Now if there is an issue in loading the dll, the DI server might throw this error. But even if there are no dll loading issues, this error can still arise when the DI Server stops responding. - Error: Failed to generate Session
Cause: This error generally occurs when there is a communication issue between the database and the DI Server module, but it can also happen when the DI Server does not respond. - Error: Retrieving the COM class factory for component with CLSID {F3D77DAE-6C14-426E-B56F-C550BDE8B09D} failed due to the following error: 800700a4 No more threads can be created in the system. (Exception from HRESULT: 0x800700A4)
Cause: This error indicates an installation issue, but if you look closely, the 2nd part of the error says it cannot create any new thread. This usually indicates a Resource Crunch in the system, but it can also occur due to the DI Server not responding.
Troubleshooting Guide for SAP Business One DI Server
1. Verify Connectivity
Good network links are the foundation for DI Server to work. If the server can’t talk to clients or the database, nothing else will help. A quick check of basic network tools often finds hidden blocks. Start here to rule out simple but critical network issues.
- Ping the DI Server: Run ping <hostname> from a client PC to confirm basic reachability.
- Test port access: Use telnet <hostname> 30000 (or your port) to ensure TCP isn’t blocked.
- Check DNS resolution: Verify the server’s name maps correctly with nslookup <hostname>.
- Review firewall rules: Look for any Windows or network firewall entries that block DI Server ports.
2. Check Server Status
Your DI Server service must be running and healthy. Stopped or crashing services often signal deeper problems. A glance at the SAP B1 Service Manager can save hours of guessing. Confirm the service state before digging into logs.
- Open Service Manager: Launch it from the Start menu or Taskbar icon.
- Locate “DI Server”: Verify it shows a green “Running” status.
- Restart if crashed: If it’s stopped or erroring, click Start or Restart.
- Scan for event errors: After a failed start, check Windows Event Viewer for service-related errors.
3. Check System Logs
Logs capture the errors your eyes never see. Extended logging can add a few seconds overhead but reveals hidden faults. Focus on the time when errors happen. Patterns there point to root causes.
- Enable Extended Logs: In Service Manager, go to Settings and turn on Extended Logs.
- Reproduce the error: Trigger the problem to ensure it’s recorded.
- Open the log folder: Browse to …\SAP Business One ServerTools\DI_Server\Logs.
- Search for key terms: Look for “Resource Error,” “Session,” or “Timeout.”
4. Restart Services
Sometimes the simplest fix is a restart. Stale temp files and hung threads clear out when you restart the DI Server. Always delete old DLL temp folders first. Then start fresh and watch for errors.
- Stop DI Server: Use Service Manager to halt the service.
- Delete temp folders: Remove C:\Windows\Temp\SM_OBS_DLL and …\SM_OBS_64_DLL.
- Start the service: Click Start and wait for a clean launch.
- Verify with a test call: Run a basic DI API query to confirm responsiveness.
5. Verify Database Connections
If DI Server can’t reach the database, data calls will fail. Testing with SQL tools helps isolate SQL vs. DI Server issues. Make sure credentials and network links are right.
- Connect via SSMS: Log in with the DI Server account to the SAP B1 database.
- Run a sample query: e.g., SELECT TOP 1 * FROM OINV to verify read access.
- Check connection strings: Confirm the database host, port, and instance names match.
- Review SQL permissions: Ensure the DI Server user has the required read/write roles.
6. Update Patches and Versions
Old or mismatched versions often hide bugs you can’t fix any other way. Keeping DI Server in sync with SAP B1 ensures compatibility. Plan downtime for patching, then reboot and retest.
- Check current versions: In SAP B1, go to Help → About and note DI Server patch level.
- Download the latest patch: Get it from SAP Support Portal under your service contract.
- Apply during off-hours: Follow SAP’s patching guide to update the server.
- Restart and validate: After patching, restart DI Server and run connectivity tests.
7. Monitor Resource Utilization
High CPU or memory use can choke DI Server. Watching its resource footprint reveals runaway loops or memory leaks. If you hit limits, scale up or move to 64-bit.
- Open Task Manager: Sort processes by CPU and memory usage.
- Spot the DI Server process: Note its CPU spikes and memory growth.
- Check handle counts: Excessive handles hint at resource leaks.
- Plan for scale: If 32-bit memory tops 1.5 GB, upgrade to the 64-bit DI Server module.
8. Review Customizations
Custom add-ons or bad queries can overwhelm DI Server. Temporarily disabling them narrows down troublemakers. Look for loops or massive data pulls.
- List active add-ons: In Service Manager, view all third-party packages.
- Disable non-critical ones: Turn them off one by one and test DI calls.
- Inspect custom queries: Find any long-running or error-prone SQL statements.
- Refactor or remove: Update code or maps that flood DI Server with requests.
9. Check Disk Space
Low disk space on the OS or temp drives can halt DI Server mid-operation. It needs room for temp files and logs. Keep 20 % free to avoid silent failures.
- Open File Explorer: Look at free space on C: and temp drives.
- Clean up old logs: Archive or delete logs older than 30 days.
- Empty recycle bin: That often frees surprising amounts of space.
- Monitor growth: Set up disk alerts to warn you when space dips below 20 %.
10. Test User Authorization
Missing rights can block DI calls in odd ways. A test account with full DI Server roles rules out permissions. If it works, you know which user or role needs fixing.
- Create a test user: Grant it full DI Server and SQL access.
- Run a DI client tool: Use a sample DI API call to fetch a record.
- Check error messages: Permission denials usually cite “Authorization Failed.”
- Adjust roles: Update the original user’s DI Server group or SQL roles.
Following these detailed steps in order helps you nail down and fix most DI Server problems quickly. If you still hit stubborn errors, consider shifting to the modern SAP Business One Service Layer for a more robust, supported API.
Troubleshooting SAP Business One DI Server
Identifying Core issues
DI Server restart might not always occur because of issues in the tool. Sometimes, it may occur when the DI Server is utilized extensively, and it needs to generate a large number of errors. If the tool that is connecting to the DI Server is generating huge amounts of errors, you might need to fix the errors to overcome this problem. To identify the issue, we need to enable extended logs. Here are the steps to enable extended logs.
- Open SAP Business One Service Manager tool.
- Choose DI Server Service.
- Open Settings.
- Check the Extended logs.
- Save Changes and restart the DI Server service.
If you want to know more on how to investigate SAP Business One DI server issues, click here.
Increasing connection timeout
DI Server connection timeout can also be a cause of DI Server not responding issue. When the connection times out often, that means the data you are trying to fetch could not execute properly within the time interval specified. This might cause timeout issues and if the same query is called in a loop, it can generate huge numbers of errors which can cause the failure of the DI Server.
To overcome this scenario, we recommend increasing the Connection Timeout settings by following the steps below.
- Open the DI Server Config file by using this Path – C:\Program Files\SAP\SAP Business One ServerTools\DI_Server
- Edit DataConnectionTimeout property.
- Change the value from 15 minutes to 40 minutes.
- Save changes and restart the DI Server.
Changing the connection timeout to 40 minutes will reduce the possibility of timeout errors because 40 minutes is sufficient time for any query execution.
Troubleshooting DI Server: Changing Process Architecture
DI Server process architecture can also be a cause of the DI Server not responding issue. Depending on the amount of data load and parallel execution of queries, the process can also take a huge amount of memory to incorporate manipulations. It is always recommended to load as little data as possible through the DI Server, but if it is not possible, you might end up using process memory.
In the case of 32-bit process, there is a hard limit of 2 GB memory space that can be allocated only in a Windows system. Hence if you notice the DI Server module memory going beyond 1.5 GB, there is a high probability that it might crash soon due to reaching the limit.
You can install the DI Server 64-bit module to overcome the restriction of 2 GB since the 64-bit module has a 2 TB limit which is large enough that it cannot be reached in any system.
Manually restart the SAP Business One DI Server
Restarting the DI Server is not just restarting the service. There are multiple steps involved in restarting the service, as explained below.
- Open the DI Server Console and stop the DI Server from the management console.
- Go to C:\Windows\Temp.
- Delete the SM_OBS_DLL and SM_OBS_64_DLL folders.
- Start the DI Server again.
The SM_OBS_DLL folders are temporarily created, and when the DI Server cannot access these folders or try to reuse the folder, it stops responding. Deleting these folders will help the DI Server to recreate it automatically, thus enabling it to freely access the folders.
How to automate restart for SAP Business One DI Server
It is not always practical or efficient for businesses to restart the service manually. That is why it is recommended to use an automated approach to restart the service. Here are the methods to automate the process of restarting the service.
Through APPSeCONNECT
APPSeCONNECT provides you with a rule which you can use to restart the service in the customer’s environment. The tool will keep track of all these errors coming to the system and restart the DI Server module automatically. To enable the rule, follow the steps below:
- Open Portal (https://portal.appseconnect.com)
- Go to the Deploy section.
- Select the Environment.
- Choose Rule.
- Deploy “SAPB1DISERVERReStartRule”.
- The rule will keep track of all the scenarios and restart the DI Server automatically.
But to make this work, the APPSeCONNECT local service should have permission to restart the DI Server module. If it does not have appropriate permissions, the DI Server restart might fail.
Through batch files
Sometimes, the SAP Business One DI Server restart rule may also fail to fix the issue. In such cases, you can try using the batch file, which could be scheduled using the Task scheduler to restart the DI Server service after deleting the data.
You can place this batch file inside a folder in Program Files. It’s recommended to choose Program files to ensure that you do not delete the file accidentally.
To enable auto restart, open Task Scheduler and add a recurrence rule pointing to the batch file. It is generally recommended to restart the DI Server module once in 12 hours, but it also depends on the data load.
Conclusion
SAP Business One DI Server is having multiple problems and has already been replaced by the Service Layer, which is easily available and highly scalable. That is why we always recommend using the Service Layer instead of the DI Server. But if you are already using DI Server and you want to integrate through DI Server only, you can use the troubleshooting steps explained above to fix the ongoing problems with integration.
APPSeCONNECT supports SAP Business One integration with other applications using both the DI Server as well as Service Layer. Service Layer does not require the integration tool to be installed in the local network, and is the way to go for new installations, but when there is no way to choose or switch between these two technologies and you have to use the DI Server, we hope that following the troubleshooting steps will help you fix the issues associated with the SAP Business One DI server.