Hi Brandon,
> I'm disinclined to blame the client for two reasons. It works well
> under
> another arrangement (other server) and we don't see any errors in
> Integration test or QA test. Problem only occurs in Production.
>
> Creating a standalone test would be very difficult. Probably a last
> resort.
I see. It's what I expected, but wanted to try :)
> I will retain the code change suggestion. Thanks. Do I infer
> correctly that
> you didn't see any major issues with my code? It is based on work
> you did
> with another user on this forum.
I didn't learn your code deeply, but once I don't see any server side
exception - I think your code is correct.
> The logging suggestion is an excellent one. We will try that soonest
> (I
> should have thought of it myself).
Great. It should help! Cause this issue could be related to some re-
handshaking or things like that - so it's always useful to see the
detailed log.
Thank you!
WBR,
Alexey.
>
>
>
>
> bjtb wrote:
>>
>> Hi Folks
>>
>> We have a server that sits on the Internet and accepts SSL
>> connections
>> from client devices. We have about 100 such now and have started to
>> see
>> numerous exceptions trying to write to the clients. The two
>> exceptions are
>> below.
>>
>> When the device connects to the server I store a record of the
>> connection
>> (PanelConnection) in a central location (PanelConnectionRegistry).
>> At that
>> time I create an object (PanelWriter) used to write back to the
>> device.
>> When I go to write to the device I access PanelWriter. This gets an
>> AsyncQueueWriter (CommandServAsyncQueueWriter) from the
>> selectorhandler
>> and tries to do the write. One question I have is: Is this the best
>> way to
>> write to the device?
>>
>> My issue seems similar to
>> http://old.nabble.com/SSL-ARP-td18381476.html#a18503031, but I
>> wasn't able
>> to figure out the resolution in that case.
>>
>> We are using version 1.9.18.
>> http://old.nabble.com/file/p27148803/brivo_grizzly_code.zip
>> brivo_grizzly_code.zip
>>
>> The Grizzly related source is attached. The Controller allocation
>> is in
>> GrizzlyCommunicationManager.
>>
>> Thanks for all your help (now and in the past).
>>
>> Regards
>> Brandon
>>
>> java.nio.channels.ClosedChannelException: null
>> sun.nio.ch.SocketChannelImpl.ensureWriteOpen(Unknown Source)
>> sun.nio.ch.SocketChannelImpl.write(Unknown Source)
>>
>> com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:106)
>>
>> com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:74)
>>
>> com
>> .sun.grizzly.util.SSLOutputWriter.flushChannel(SSLOutputWriter.java:
>> 100)
>>
>> com
>> .brivo
>> .commandserv
>> .communication
>> .CommandServAsyncQueueWriter
>> .doWrite(CommandServAsyncQueueWriter.java:153)
>>
>> com
>> .sun
>> .grizzly
>> .async
>> .AbstractAsyncQueueWriter.doWrite(AbstractAsyncQueueWriter.java:430)
>>
>> com
>> .sun
>> .grizzly
>> .async.AbstractAsyncQueueWriter.write(AbstractAsyncQueueWriter.java:
>> 182)
>>
>> com
>> .sun
>> .grizzly.async.TCPAsyncQueueWriter.write(TCPAsyncQueueWriter.java:77)
>>
>> com
>> .sun
>> .grizzly
>> .async.AbstractAsyncQueueWriter.write(AbstractAsyncQueueWriter.java:
>> 140)
>>
>> com
>> .sun
>> .grizzly
>> .async.AbstractAsyncQueueWriter.write(AbstractAsyncQueueWriter.java:
>> 130)
>>
>> com
>> .sun
>> .grizzly
>> .async.AbstractAsyncQueueWriter.write(AbstractAsyncQueueWriter.java:
>> 79)
>>
>> com
>> .brivo
>> .commandserv
>> .communication
>> .CommandServAsyncQueueWriter.write(CommandServAsyncQueueWriter.java:
>> 99)
>>
>> com
>> .brivo.commandserv.communication.PanelWriter.write(PanelWriter.java:
>> 145)
>>
>> com
>> .brivo
>> .commandserv
>> .communication.PanelWriter.writeToChannel(PanelWriter.java:101)
>>
>> com
>> .brivo
>> .commandserv
>> .communication.PanelConnection.writeToChannel(PanelConnection.java:
>> 119)
>>
>> com
>> .brivo
>> .commandserv
>> .communication
>> .GrizzlyCommunicationManager
>> .sendMessage(GrizzlyCommunicationManager.java:333)
>>
>> com
>> .brivo
>> .commandserv
>> .heartbeat
>> .HeartbeatSendProcessorTaskImpl
>> .sendMessageToPanel(HeartbeatSendProcessorTaskImpl.java:92)
>>
>> com
>> .brivo
>> .commandserv
>> .heartbeat
>> .HeartbeatSendProcessorTaskImpl
>> .doExecute(HeartbeatSendProcessorTaskImpl.java:71)
>>
>> com
>> .brivo
>> .commandserv
>> .heartbeat
>> .HeartbeatSendProcessorTaskImpl
>> .doExecute(HeartbeatSendProcessorTaskImpl.java:32)
>>
>> com
>> .brivo
>> .commandserv
>> .server.AbstractProcessorTask.call(AbstractProcessorTask.java:62)
>> java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
>> java.util.concurrent.FutureTask.run(Unknown Source)
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
>> Source)
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
>> Source)
>> java.lang.Thread.run(Unknown Source)
>>
>>
>> java.io.IOException: SSLOutputWriter: CLOSED
>>
>> com
>> .sun.grizzly.util.SSLOutputWriter.flushChannel(SSLOutputWriter.java:
>> 96)
>>
>> com
>> .brivo
>> .commandserv
>> .communication
>> .CommandServAsyncQueueWriter
>> .doWrite(CommandServAsyncQueueWriter.java:153)
>>
>> com
>> .sun
>> .grizzly
>> .async
>> .AbstractAsyncQueueWriter.doWrite(AbstractAsyncQueueWriter.java:430)
>>
>> com
>> .sun
>> .grizzly
>> .async.AbstractAsyncQueueWriter.write(AbstractAsyncQueueWriter.java:
>> 182)
>>
>> com
>> .sun
>> .grizzly.async.TCPAsyncQueueWriter.write(TCPAsyncQueueWriter.java:77)
>>
>> com
>> .sun
>> .grizzly
>> .async.AbstractAsyncQueueWriter.write(AbstractAsyncQueueWriter.java:
>> 140)
>>
>> com
>> .sun
>> .grizzly
>> .async.AbstractAsyncQueueWriter.write(AbstractAsyncQueueWriter.java:
>> 130)
>>
>> com
>> .sun
>> .grizzly
>> .async.AbstractAsyncQueueWriter.write(AbstractAsyncQueueWriter.java:
>> 79)
>>
>> com
>> .brivo
>> .commandserv
>> .communication
>> .CommandServAsyncQueueWriter.write(CommandServAsyncQueueWriter.java:
>> 99)
>>
>> com
>> .brivo.commandserv.communication.PanelWriter.write(PanelWriter.java:
>> 145)
>>
>> com
>> .brivo
>> .commandserv
>> .communication.PanelWriter.writeToChannel(PanelWriter.java:101)
>>
>> com
>> .brivo
>> .commandserv
>> .communication.PanelConnection.writeToChannel(PanelConnection.java:
>> 119)
>>
>> com
>> .brivo
>> .commandserv
>> .communication
>> .GrizzlyCommunicationManager
>> .sendMessage(GrizzlyCommunicationManager.java:333)
>>
>> com
>> .brivo
>> .commandserv
>> .heartbeat
>> .HeartbeatSendProcessorTaskImpl
>> .sendMessageToPanel(HeartbeatSendProcessorTaskImpl.java:92)
>>
>> com
>> .brivo
>> .commandserv
>> .heartbeat
>> .HeartbeatSendProcessorTaskImpl
>> .doExecute(HeartbeatSendProcessorTaskImpl.java:71)
>>
>> com
>> .brivo
>> .commandserv
>> .heartbeat
>> .HeartbeatSendProcessorTaskImpl
>> .doExecute(HeartbeatSendProcessorTaskImpl.java:32)
>>
>> com
>> .brivo
>> .commandserv
>> .server.AbstractProcessorTask.call(AbstractProcessorTask.java:62)
>> java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
>> java.util.concurrent.FutureTask.run(Unknown Source)
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
>> Source)
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
>> Source)
>> java.lang.Thread.run(Unknown Source)
>>
>>
>>
>>
>>
>
> --
> View this message in context: http://old.nabble.com/Errors-writing-to-SSL-Socket-tp27148803p27165464.html
> Sent from the Grizzly - Users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_grizzly.dev.java.net
> For additional commands, e-mail: users-help_at_grizzly.dev.java.net
>