

Digging into the cause a bit more reveals that in the directory corresponding to this scan, there is an XML file (e.g., for the top entry above it is 20100621_120836.xml) that is empty, whereas it should contain the session information. (I'm presuming that the creation of this is one of the things that the session build process does. However, when I remove the file and click on the "Rebuild" button, I just recreate an empty XML file with the same name.)
Most of the logs don't tell me anything that I don't know already:
xdat.log
2020-03-09 16:31:15,180 [http-bio-8080-exec-58] ERROR org.nrg.xdat.turbine.modules.screens.SecureScreen -
org.xml.sax.SAXParseException: Premature end of file.
prearchive.log
2020-03-09 16:59:54,121 [org.springframework.jms.listener.DefaultMessageListenerContainer#3-9] ERROR org.nrg.xnat.helpers.prearchive.PrearcUtils - /home/xnat/data/prearchive/RPYS_RPACS01/20200224_030754479/20100621_120836.xml is empty.
application.log
2020-03-09 16:59:54,105 [org.springframework.jms.listener.DefaultMessageListenerContainer#3-9] ERROR org.nrg.session.SessionBuilder - /home/xnat/data/prearchive/RPYS_RPACS01/20200224_030754479/20100621_120836 must contain exactly one session
org.nrg.session.SessionBuilder$NoUniqueSessionException: No session found
2020-03-09 16:59:53,991 [org.springframework.jms.listener.DefaultMessageListenerContainer#3-9] ERROR org.nrg.dcm.xnat.DICOMSessionBuilder - Session builder not implemented for SOP class [1.2.840.10008.5.1.4.1.1.11.1] or modality [PR]

Resolution: Easy, just click on Archive in the action box. But the point is that this is a manual intervention and I shouldn't have to do it.
System details: XNAT 1.7.6 build 1694 running under Vagrant.
Any help with either or both of these errors would be much appreciated.
Best wishes,
Simon
Hi Simon,
To clarify, for issue (1), does the session just include presentation states, or is the data that reached the prearchive nothing other than presentation states?
Thanks,
Charlie
--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
xnat_discussi...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/xnat_discussion/270a81f3-345b-4790-855c-caadca4acaa0%40googlegroups.com.
The materials in this message are private and may contain Protected Healthcare Information or other information of a sensitive nature. If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail.
Hi Simon,
The reason I ask is that the message in the logs implies XNAT (thinks it) only received presentation states. If that’s true, XNAT will fail to create a session from the DICOM, which is documented:
1. Here: https://groups.google.com/d/msg/xnat_discussion/aK8R4rzLRSs/mdL2EEuqAAAJ
2. And here: https://issues.xnat.org/browse/XNAT-4527
Thanks,
Charlie
From: xnat_di...@googlegroups.com <xnat_di...@googlegroups.com> On Behalf Of Simon Doran
Sent: Monday, March 09, 2020 4:53 PM
To: xnat_discussion <xnat_di...@googlegroups.com>
--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
xnat_discussi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/xnat_discussion/5c45f278-8ca5-4ee9-b9b9-a2e50a2a9180%40googlegroups.com.
2020-03-09 16:59:53,992 [org.springframework.jms.listener.DefaultMessageListenerContainer#3-9] ERROR org.nrg.session.SessionBuilder - /home/xnat/data/prearchive/RPYS_RPACS01/20200224_030754479/20100621_120836 must contain exactly one session
org.nrg.session.SessionBuilder$NoUniqueSessionException: Multiple sessions found: [no session type identified]
at org.nrg.dcm.xnat.DICOMSessionBuilder.call(DICOMSessionBuilder.java:372)
at org.nrg.dcm.xnat.DICOMSessionBuilder.call(DICOMSessionBuilder.java:44)
at org.nrg.session.SessionBuilder.writeSession(SessionBuilder.java:208)
at org.nrg.session.SessionBuilder.run(SessionBuilder.java:249)
at org.nrg.xnat.archive.XNATSessionBuilder.buildDicomSession(XNATSessionBuilder.java:283)
at org.nrg.xnat.archive.XNATSessionBuilder.call(XNATSessionBuilder.java:203)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase$13.extSync(PrearcDatabase.java:1065)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase$13.extSync(PrearcDatabase.java:1032)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase$LockAndSync.run(PrearcDatabase.java:1633)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase.buildSession(PrearcDatabase.java:1084)
at org.nrg.xnat.helpers.prearchive.handlers.PrearchiveRebuildHandler.execute(PrearchiveRebuildHandler.java:64)
at org.nrg.xnat.services.messaging.prearchive.PrearchiveOperationRequestListener.onRequest(PrearchiveOperationRequestListener.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:265)
at org.springframework.jms.listener.adapter.MessageListenerAdapter.invokeListenerMethod(MessageListenerAdapter.java:314)
at org.springframework.jms.listener.adapter.MessageListenerAdapter.onMessage(MessageListenerAdapter.java:243)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:719)
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:679)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:649)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:317)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:255)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1168)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1160)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1057)
at java.lang.Thread.run(Thread.java:748)
2020-03-09 16:59:54,105 [org.springframework.jms.listener.DefaultMessageListenerContainer#3-9] ERROR org.nrg.session.SessionBuilder - /home/xnat/data/prearchive/RPYS_RPACS01/20200224_030754479/20100621_120836 must contain exactly one session
org.nrg.session.SessionBuilder$NoUniqueSessionException: No session found
at org.nrg.session.SessionBuilder.writeSession(SessionBuilder.java:210)
at org.nrg.session.SessionBuilder.run(SessionBuilder.java:249)
at org.nrg.xnat.archive.XNATSessionBuilder.buildPetSession(XNATSessionBuilder.java:248)
at org.nrg.xnat.archive.XNATSessionBuilder.call(XNATSessionBuilder.java:207)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase$13.extSync(PrearcDatabase.java:1065)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase$13.extSync(PrearcDatabase.java:1032)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase$LockAndSync.run(PrearcDatabase.java:1633)
at org.nrg.xnat.helpers.prearchive.PrearcDatabase.buildSession(PrearcDatabase.java:1084)
at org.nrg.xnat.helpers.prearchive.handlers.PrearchiveRebuildHandler.execute(PrearchiveRebuildHandler.java:64)
at org.nrg.xnat.services.messaging.prearchive.PrearchiveOperationRequestListener.onRequest(PrearchiveOperationRequestListener.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:265)
at org.springframework.jms.listener.adapter.MessageListenerAdapter.invokeListenerMethod(MessageListenerAdapter.java:314)
at org.springframework.jms.listener.adapter.MessageListenerAdapter.onMessage(MessageListenerAdapter.java:243)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:719)
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:679)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:649)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:317)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:255)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1168)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1160)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1057)
at java.lang.Thread.run(Thread.java:748)