DIMSE failure (aborting association): DIMSE No data error when retrieving big CT

Hello,

I’m getting:
E0705 12:10:16.143091 CommandDispatcher.cpp:877] DIMSE failure (aborting association): DIMSE No data available (timeout in non-blocking mode)
While trying to retrieve big studies (lots of images).
I do not get this error when retrieving smaller studies.
I think I get this error because it take a long time before the first image gets send to Orthanc (the sending server first has to retrieve the complete study from nearline storage).

I believe this can be fixed by increasing the DIMSE C-move timeout.
I cannot find a configuration item to set this timeout.
Can you make this timeout configurable?

Thanks in advance.
Regards,
Robert

Dear Robert,

I have just added two new options to fine-tune the DICOM timeouts:
https://bitbucket.org/sjodogne/orthanc/commits/fabf7820d1f194149f15f0d40123dda498db5e08

// Set the timeout (in seconds) after which the DICOM associations
// are closed by the Orthanc SCP (server) if no further DIMSE
// command is received from the SCU (client).
“DicomScpTimeout” : 30,

// The timeout (in seconds) after which the DICOM associations are

// considered as closed by the Orthanc SCU (client) if the remote
// DICOM SCP (server) does not answer.
“DicomScuTimeout” : 10,

In your case, you would need to increase “DicomScpTimeout”.

Please could you tell me whether these options solve your issue?

Regards,
Sébastien-

Dear Forum,

does anybody know if it is possible to set the field “DicomScpTimeout” to a value that translates to no timeout at all?

Previously I had seen that this could be set with the following patch, but I wonder if now the same setup can be achieved from the Orthanc Configuration.

diff -r 71356f41ec2f OrthancServer/main.cpp
--- a/OrthancServer/main.cpp	Fri Dec 11 09:04:50 2015 +0100
+++ b/OrthancServer/main.cpp	Fri Dec 11 09:27:34 2015 +0100
@@ -735,6 +735,8 @@
   dicomServer.SetMoveRequestHandlerFactory(serverFactory);
   dicomServer.SetFindRequestHandlerFactory(serverFactory);
 
+  dicomServer.SetClientTimeout(0);
+
 #if ORTHANC_PLUGINS_ENABLED == 1
   if (plugins &&
       plugins->HasWorklistHandler())

Regards,
Michele

Hi @michele,

Yes, 0 means no timeout. I have just updated the doc since the info was missing.

Alain.