Last Friday i had this error, that the soap of biztalk generated item from the orchestration is error. It said that the error is timeout. I check the service via browser, its running fine, but what the hell happend.
After i analise more detail, it’s about the response. I can send the message use the web service but did not get the response. I realise that all the response message is suspended in biztalk admin. At this time, i try to restart the host instance of the application. It work well for a while, then it’s start to lose the stability and the system is down again.
i check all the parameter, i found that the server available memory is 0 (ZERO!!!) but the processor is normal. I check the process memory, i find the sql server is the biggest-eater memory. Then i check the sql server. Rearrange the memory for the sql process that not more than 6 GB, but the server available memory is still zero.
i check all the sql parameter. Then i found that the sql agent jobs is not working!!! DAMN!! I also find that the biztalk throltling is at level 6.
Then i tried to start the sql agent jobs, at first attempt it failed, cause the memory is full, and i need to delete all the suspend message in biztalk msgbox. After its start, the biztalk trhotlling is 0. Restarting the host instance, restart the biztalk application. And its running well. But the memory is still high.
Perhaps this is what happend
After i check the event viewer, i found that the problem is happend the night before and it happend all the time until the system down. At that night, the biztalk handle 2500 message at once. This make the message box database grow. The sql jobs running low because lack of memory. The biztalk throttle gets high. When the sql try to give the response, the application cut off the session (the session time from the application is too short because the response is too slow), so it back to the suspended message. This make the biztalk data database is grow. The grow of biztalk data database eat more memory until there’s no available memory. Because there’s no memory left, the sql agent jobs stops. Then the invoker application did not get any response.
The most important of this event is, try to monitor the biztalk database engine, especially for the message box db and data db. If there’s something unusual grow in this two database, prepare for lack of memory.
You may also fixed the sql memory at some point, but this make the database processing slower which mean that you need to make the session time of the invoker application raised so that the biztalk still can send the response message.
The best practice is that you split the biztalk and the database. So you can give the SQL more space to grow but still, you need to aware the message box size and biztalk data size cause more message coming, this two database grow larger.









Recent Comments