I have an external program which runs by the xp_cmdshell. This program get data from serial port and then store it back to the database (directly, by JDBC) It seems to me that when xp_cmdshell is running a program, the whole SQL server stop responding to any other request. (Is this normal?) Anyways, I insert a record into a table and this triggers an external program to run. But then the whole SQL server is hold at that stage. Logins are ok but no SQL or T-SQL commands are accepted. It seems to me like the SQL server (xp_cmdshell in specific) is waiting for the external program to terminate but the external program is waiting for the server is be ready to accept data. They are both waiting for each other. Any suggestions here?