DIMSE Failed to send message\n0006:031d TCP I/O Error (No error) occurred in routine: writeDataPDU
Moderator: Moderator Team
DIMSE Failed to send message\n0006:031d TCP I/O Error (No error) occurred in routine: writeDataPDU
Hi All,
Sometimes while pushing the dicom files to any storescp , i get the following error at my scu :
DIMSE Failed to send message\n0006:031d TCP I/O Error (No error) occurred in routine: writeDataPDU
If i push the same image again ,storescu will successfully push the images.
I am assuming that we get this error when someone switched off the scp in between the transaction. I am also able to reproduce the same. While pushing a dataset of 1000 images, i suddenly switched off the storescp, i get the same error.
Error code returned is 526 , module returned is 6.
What is this error code 526? I want complete list of ofcondition return codes. I tried to find the same in dcmtk code base but i am not able to find it.
Basically i want to achieve is :
If scu has to push 1000 images in one transaction and scp is damn slow(taking around 30 seconds to recieve one image). After successfully pushing 900 images, some one switch off the scp, then i want to wait for some time and after that i want to push remaining 100 images. I don't want to start that transaction of 1000 images from beginning. To achieve this i want to put the exact ofcondition return code check in my codebase.
It will be great help if someone can tell me what exact error code we will get if scp gets down in between the transaction. Also i want the complete cond.code() list.
Thanks in advance!!!!
Waiting for reply.
Thanks,
Angad Nath
Sometimes while pushing the dicom files to any storescp , i get the following error at my scu :
DIMSE Failed to send message\n0006:031d TCP I/O Error (No error) occurred in routine: writeDataPDU
If i push the same image again ,storescu will successfully push the images.
I am assuming that we get this error when someone switched off the scp in between the transaction. I am also able to reproduce the same. While pushing a dataset of 1000 images, i suddenly switched off the storescp, i get the same error.
Error code returned is 526 , module returned is 6.
What is this error code 526? I want complete list of ofcondition return codes. I tried to find the same in dcmtk code base but i am not able to find it.
Basically i want to achieve is :
If scu has to push 1000 images in one transaction and scp is damn slow(taking around 30 seconds to recieve one image). After successfully pushing 900 images, some one switch off the scp, then i want to wait for some time and after that i want to push remaining 100 images. I don't want to start that transaction of 1000 images from beginning. To achieve this i want to put the exact ofcondition return code check in my codebase.
It will be great help if someone can tell me what exact error code we will get if scp gets down in between the transaction. Also i want the complete cond.code() list.
Thanks in advance!!!!
Waiting for reply.
Thanks,
Angad Nath
-
- DCMTK Developer
- Posts: 2541
- Joined: Tue, 2011-05-03, 14:38
- Location: Oldenburg, Germany
- Contact:
0x031d is defined as DULC_TCPIOERROR in dcmnet/include/dcmtk/dcmnet/cond.h. The strange output "TCP I/O Error (No error)" is a result from the fact the Windows sometimes does not set the global variable "errno" appropriately. This is a known issue, which will be solved as time permits.
Btw, module number 6 means "dcmnet" (see dcmdata/include/dcmtk/dcmdata/dcerror.h).
Btw, module number 6 means "dcmnet" (see dcmdata/include/dcmtk/dcmdata/dcerror.h).
Hi,
Thanks alot for your quick reply. So can i assume that if i get "DIMSE Failed to send message\n0006:031d TCP I/O Error........" error it means that SCP is down in between of the transaction.
Also i am getting ofcondition code as 526 if i get above error. So can i play on this number(526). How you guys are calculating the code as 526. There must be some list of all the ofcondition return types. I am not able to find it in dcmtk forum
Thanks,
Angad Nath
Thanks alot for your quick reply. So can i assume that if i get "DIMSE Failed to send message\n0006:031d TCP I/O Error........" error it means that SCP is down in between of the transaction.
Also i am getting ofcondition code as 526 if i get above error. So can i play on this number(526). How you guys are calculating the code as 526. There must be some list of all the ofcondition return types. I am not able to find it in dcmtk forum
Thanks,
Angad Nath
-
- DCMTK Developer
- Posts: 2541
- Joined: Tue, 2011-05-03, 14:38
- Location: Oldenburg, Germany
- Contact:
Re: DIMSE Failed to send message\n0006:031d TCP I/O Error (N
Today I got this error with DCMTK 3.6.1 and it's too bad this routine doesn't provide any details about the error on Windows platform. I know it's not easy to fix this, since you need to call platform-dependent API to get an error code (http://msdn.microsoft.com/en-us/library ... s.85).aspx) but I hope you'll give it higher priority.
Thanks,
takeos
Thanks,
takeos
-
- DCMTK Developer
- Posts: 2541
- Joined: Tue, 2011-05-03, 14:38
- Location: Oldenburg, Germany
- Contact:
Re: DIMSE Failed to send message\n0006:031d TCP I/O Error (N
Thanks for the reminder. This issue has already high priority and should be fixed for the next DCMTK release. The internal bug ID is #393 (for your reference).
Re: DIMSE Failed to send message\n0006:031d TCP I/O Error (N
Thanks a lot! It's good to hear that!
-
- Posts: 14
- Joined: Fri, 2013-01-04, 16:23
Re: DIMSE Failed to send message\n0006:031d TCP I/O Error (N
greetings. has there been any resolution to internal bug id #393? i recently compiled build dcmtk-3.6.1_20140617 using vc 2008 with both 32 bit and 64 bit formats and the storescu utility experiences the 0006:020e and 0006:031d error messages when trying to send large files (the one i am trying to send is 1.5 GB) . here is what is produced:
i am having the storescu send to the storescp and this is the error generated by storescp:
is there a known file size limit? please let me know if there are any fixes in place or offer any suggestions.
Code: Select all
I: checking input files ...
I: Requesting Association
I: Association Accepted (Max Send PDV: 16372)
I: Sending file: C:\1.dcm
I: Converting transfer syntax: Little Endian Implicit -> Little Endian Explicit
I: Sending Store Request (MsgID 1, BT)
XMIT: ...........E: Store Failed, file: C:\1.dcm:
E: 0006:020e DIMSE Failed to send message
E: 0006:031d TCP I/O Error (No error) occurred in routine: writeDataPDU
E: Store SCU Failed: 0006:020e DIMSE Failed to send message
E: 0006:031d TCP I/O Error (No error) occurred in routine: writeDataPDU
I: Aborting Association
E: Association Abort Failed: 0006:031d TCP I/O Error (No error) occurred in routine: sendAbortTCP
Code: Select all
W: DIMSE Warning: (DICOMTEST,ANY-SCP): DIMSE receiveDataSetInMemory: dset->read() Failed (Virtual Memory exhausted)
W: closing unflushed DcmInputBufferStream, loss of data!
E: Store SCP Failed: 0006:020d DIMSE Failed to receive messageE: DIMSE failure (aborting association): 0006:020d DIMSE Failed to receive message
-
- DCMTK Developer
- Posts: 2072
- Joined: Fri, 2004-11-05, 13:47
- Location: Oldenburg, Germany
- Contact:
Re: DIMSE Failed to send message\n0006:031d TCP I/O Error (N
Hi,
I never noticed such a limitation. The bug that you mentioned (393) is only about the error message produced, not about functionality (and, no, it's not yet fixed .
Make sure you use the 64 bit binaries of storesu and storescp to be 100% sure memory is not an issue.
It might be worth trying out storescp's bit preserving mode that directly writes to disk and does not receive the whole file in memory (--bit-preserving), which should always work.
Best,
Michael
P.S: I suppose you have enough RAM installed in your computer
I never noticed such a limitation. The bug that you mentioned (393) is only about the error message produced, not about functionality (and, no, it's not yet fixed .
Make sure you use the 64 bit binaries of storesu and storescp to be 100% sure memory is not an issue.
It might be worth trying out storescp's bit preserving mode that directly writes to disk and does not receive the whole file in memory (--bit-preserving), which should always work.
Best,
Michael
P.S: I suppose you have enough RAM installed in your computer
-
- Posts: 14
- Joined: Fri, 2013-01-04, 16:23
Re: DIMSE Failed to send message\n0006:031d TCP I/O Error (N
thank you for a prompt response. i tried sending the 1.5 gb file using storescu to storescp in both 32 bit mode and 64 bit mode. you are correct in that the problem was not with the storescu, but rather i needed to set the bit preserving flag on the storescp. once i did that, i was able to complete the transmission. my system has 8 gb ram, so i was a bit surprised this was the problem. my application uses DIMSE_receiveDataSetInMemory which is failing due to lack of memory so i assume i need to migrate to DIMSE_receiveDataSetInFile to get large files to work.
-
- DCMTK Developer
- Posts: 2072
- Joined: Fri, 2004-11-05, 13:47
- Location: Oldenburg, Germany
- Contact:
Re: DIMSE Failed to send message\n0006:031d TCP I/O Error (N
Hi,
I still find it very weird it storescp does not receive it in "normal" mode. That should work, and worked for me before some months ago when I last tested with a huge video file. storescp does not "pump up" your file in memory, so it never should take more than the 1,5 GB in memory it had before*. You may watch the storescp process during operation and see how much memory it takes.
Hm, just to be sure: The original file with 1,5 GB is already uncompressed e.g. it has the Transfer Syntax Little Endian Implicit that is noted in the storescu log, right?
Best regards,
Michael
I still find it very weird it storescp does not receive it in "normal" mode. That should work, and worked for me before some months ago when I last tested with a huge video file. storescp does not "pump up" your file in memory, so it never should take more than the 1,5 GB in memory it had before*. You may watch the storescp process during operation and see how much memory it takes.
Hm, just to be sure: The original file with 1,5 GB is already uncompressed e.g. it has the Transfer Syntax Little Endian Implicit that is noted in the storescu log, right?
Best regards,
Michael
-
- Posts: 14
- Joined: Fri, 2013-01-04, 16:23
Re: DIMSE Failed to send message\n0006:031d TCP I/O Error (N
correct. the original file is 1.5 gb, uncompressed and has transfer syntax little endian implicit as noted in storescu log. the storescp consumes the 1.5 gb when receiving the image. i started with 4.8 gb in use and when receiving my system went to 7.0 gb in use (out of 8 gb available). i turned off the bit preserving flag and got it to work as long as i had enough resources. note that the storescu would not work in 32 bit mode with the 1.5 gb file. i also still have problems with my own application that uses the call DIMSE_receiveDataSetInMemory to receive the 1.5 gb file even though my system has 32 gb of ram it can not receive the large filesize (DIMSE_NODATAAVAILABLE / message code = 525).
-
- Posts: 14
- Joined: Fri, 2013-01-04, 16:23
Re: DIMSE Failed to send message\n0006:031d TCP I/O Error (N
i would really like to use the call DIMSE_receiveDataSetInMemory rather than DIMSE_receiveDataSetInFile. is there a way to allocate more memory for DIMSE_receiveDataSetInMemory so that I can receive a 1.5 gm file? like i said, my system has 8 gb ram installed and 3 gb available when my application runs. i would think that i have enough memory but the error message states that i am out of virtual memory.
Re: DIMSE Failed to send message\n0006:031d TCP I/O Error (N
Hi, I have the same problem. I develop DICOM print. I use for it dcmtk 3.6.1 and for test dcmprscp. Film session is created successfully. But when I create film box DIMSE_receiveCommand returns
dcmprscp returns
Please tell me what can be wrong.
Code: Select all
DIMSE Failed to receive message
0006:020f DIMSE: Command PDV Expected
Code: Select all
T: DIMSE sendDcmDataset: sending 144 bytes
T: DUL FSM Table: State: 6 Event: 8
T: DUL Event: P-DATA request primitive
T: DUL Action: DT 1 Send P DATA PDU
T: DIMSE sendDcmDataset: sending 380 bytes
T: DUL FSM Table: State: 6 Event: 8
T: DUL Event: P-DATA request primitive
T: DUL Action: DT 1 Send P DATA PDU
W: DIMSE Failure (aborting association):
W: 0006:020e DIMSE Failed to send message
W: 0006:031d TCP I/O Error (No error) occurred in routine: writeDataPDU
T: DUL FSM Table: State: 6 Event: 14
T: DUL Event: A-ABORT request primitive
T: DUL Action: AA 1 Send A ABORT PDU
W: Cannot abort association:
W: 0006:031d TCP I/O Error (No error) occurred in routine: sendAbortTCP
Who is online
Users browsing this forum: Ahrefs [Bot], Bing [Bot] and 0 guests