I start a BICEPS client and a device in two different JVMs and wait for MdibMDSListener.newDeviceAvailable(...) to be called. Usually the client finds the device but sometimes (5-10%) it does not work. See attached log. In line 5410 you can see my timeout of 30 seconds.
Can you provide a log with timestamps. It looks like the initial communication was almost complete as your deadline expired.
In order to activate timestamps you have to change the property LogTimestamp in the properties file.
Could you also provide a log entry when the timer is started.
Last edit: Stefan Schlichting 2015-03-16
19 tests succeeded, 20th test failed
timeout in line 5449
If I interpret the log the right way, the deadline on the client expires 12 secs after the initial hello message.
3 seconds are used to create the JAXB marshaller. This can be avoided if you initialize the factory before starting your timer.
In order to do this, just add
PVObjectUtilPoolProvider.getInstance();
ModelSchemaConverterProvider.getInstance();
to your code before starting the timer.
[JVM-1] [DEBUG|13:52:54.367] HelloMessage [ header=SOAPHeader [ action=http://docs.oasis-open.org/ws-dd/ns/discovery/2009/01/Hello, messageId=urn:uuid:1c2756
...
[JVM-1] [INFO |13:52:56.006] PVObjectUtilFactory: com.draeger.medical.biceps.common.impl.jaxb.JAXBBuilderFactory
...
[JVM-1] [DEBUG|13:52:59.599] Trying to allocate a task on thread pool:CallTimeoutTask [entry=TimedEntry [relationshipKey=null, timeToRemove=1426510379588, disabled=false, registered=false]] Active Threads18 Idle:1 Limit:100
...
[JVM-1] [DEBUG|13:53:06.764] Unregister related entry from WatchDog: null TimedEntry [relationshipKey=null, timeToRemove=1426510386754, disabled=true, registered=false]; Related Entries:0
[JVM-1] - should find a BICEPS device and set a metric on it *** FAILED ***
...
I fixed my test for waiting 30 seconds after device is started. Test failed after 22 tries. (see log)
[JVM-1] [DEBUG|15:50:58.051] HelloMessage [
...
[JVM-1] [WARN] [03/18/2015 15:51:27.435] [BicepsFacadeSpec-