The problem appears to be an inability to recover from a bad TCP/IP read. This is a low level I/O bug in dcmrcv.
DICOM is a transport protocol that follows the OSI seven layer model. DICOM runs on top of TCP/IP. The lower levels of DICOM are described in part 8 of the DICOM standard. The current version is here:
http://medical.nema.org/Dicom/2011/11_08pu.pdf. Reading it isn't always easy, but it can help you decipher the logs. Start with
Figure 1-1, ISO OSI BASIC REFERENCE MODEL
3.7 DICOM COMMUNICATION SUPPORT DEFINITIONS
Figure 6.1, DICOM NETWORK PROTOCOL ARCHITECTURE.
INFO: 2013-01-15 10:15:35 - Association - Association(2455) accepted Socket[addr=/
172.16.11.2,port=59358,localport=6667]
INFO: 2013-01-15 10:15:35 - Association - Association(2455): A-ASSOCIATE-RQ CANON_CCR >> DW_RAW_SCP
INFO: 2013-01-15 10:15:35 - PDUEncoder - CANON_CCR(2455) << A-ASSOCIATE-RJ[result=2, source=2, reason=1]: transient no-reason-given
INFO: 2013-01-15 10:15:35 - Association - CANON_CCR(2455): close Socket[addr=/
172.16.11.2,port=59358,localport=6667]
The take-away is that TCP/IP is working, but that dcm4cv rejected the DICOM association before even beginning negotiation. The reason is an unknown transient problem.
In more detail, these lines mean
A TCP/IP connection was successfully established.
CANON_CCR requested a DICOM association from DW_RAW_SCP (dcmrcv).
CANON_CCR received a response that dcmrcv rejected the DICOM association attempt.
CANON_CCR closed the TCP/IP connection.
A-ASSOCIATE-RJ means the association was rejected before it opened.
Services related to establishing a DICOM association are listed in PS 3.8-2009, 7 OSI upper layer service for DICOM application entities, Table 7-1 UPPER LAYER SERVICES
A-ASSOCIATE creates a new association.
A-RELEASE, A-ABORT, or A-P-ABORT terminates an existing association. These were never used.
P-DATA helps negotiate the data type of format to be used in the association.
The standard describes the parameters of the A-ASSOCIATE message starting at PS 3.8-2011, 7.1.1.7 Result, p16.
The source identifies the creator of the result and reason. source=2 means UL service-provider (ACSE related function), or the Upper Layer of dcmrcv (Association Control Service Element related function).
The result is rejected (transient), not rejected (permanent). rejected (transient) means more or less "Try again later." rejected (permanent) would be appropriate for an error like an unknown AE Title, where another attempt would not be expected to succeed.
The diagnostic (or reason) is no-reason-given. This just means that the reason is not one of the other reasons listed in PS 3.8-2011, 7.1.1.9 Diagnostic.
The java log is useful.
A PDU is a Protocol Data Unit, or low level DICOM data packet.
A PDV is a Presentation Data Value. A PDV contains a data type and data format. PDVs are used by the P-DATA service to negotiate the data that can be transferred over a DICOM association.
So it appears that the trouble started while trying to negotiate an association. dcmrcv tried to read a PDU from the socket. This failed because of an I/O error. The socket was reset.
The socket itself recovered. When next opened, it transmitted data normally. But the PDUDecoder in dcmrcv seems to have been left in an abnormal state. It could not recover and process any more DICOM data packets.
This type of intermittent bug can be hard to find and test. Let us know if it happens again.