in my dns server i have protocol filter chain set as follows:
ReadFilter()
DNSQueryFilter()
AuthoritativeDNSFilter()
ResponseMakerFilter()
UDPWriteFilter()
they are stateless, one class instance is used for serving all requests.
Problem is that Grizzly stops working after 5 in/out packets, most likely
he runs of available worker threads.
what i am doing wrong? Need i add some filter after UDPWriteFilter and
call some terminate function so grizzly can recycle worker thread?
UDPWriteFilter registers key in postExecute for OP_WRITE, is this right?
because my work flow read -> process -> write (terminate work, but prepare
to read next packet again, not write more data). so after my job, key should
be registered in select set only for OP_READ.
btw: my dns server is 3x faster than bind 9.3.3