does session that entered idle state can write and read mesasage later?
On Fri, Jul 25, 2008 at 1:17 PM, Zlatko Josic <[EMAIL PROTECTED]>wrote:
> Hi,
>
> tnis is snippet code of client
>
> for (int i = 0; i < stepNumber; i++) {
> ClientRequest request = new ClientRequest();
> request.setParameter("command", "addEVEronet");
> request.setParameter("Amt", "10");
> request.setParameter("phoneNumber", "0642361393");
> request.setParameter("serN", "000001");
> // slanje zahteva.
>
> // kreiranje soketa.
> Socket socket = null;
> BufferedReader br = null;
> PrintWriter pw = null;
> Map<String, Object> result = null;
> try {
> socket = new Socket(host, port);
> br = new BufferedReader(new
> InputStreamReader(socket.getInputStream()));
> pw = new PrintWriter(socket.getOutputStream());
> //citanje trenutnog vremena.
> result = readTransformator.transform(br.readLine());
> log.info(CollectionsUtil.formatMap(result));
>
> String currTime = (String)result.get("currT");
> //kriptovana vrednost.
> String crypt = Coder.decode(currTime);
> request.setParameter("orN", crypt);
> pw.println(writeTransformator
> .transform(request.getParameters()));
> pw.flush();
> result = readTransformator.transform(br.readLine());
> log.info(CollectionsUtil.formatMap(result));
> } catch (UnknownHostException e) {
> throw new DestinationNotAvailableException(e);
> } catch (IOException e) {
> throw new DestinationNotAvailableException(e);
> } finally {
> //zatvaranje resursa.
> SocketUtil.close(socket);
> IOUtil.close(br);
> IOUtil.close(pw);
>
> }
>
> sleepQuetly(3*1000);
> }// for
>
>
> and this is snippet of server code
>
> public void process(final MobileContext context) {
> //uzimanje sesije.
> IoSession session = (IoSession)context.getParameter("ioSession");
> TransactionDirector transactionDirector =
> (TransactionDirector)context.getParameter("transactionDirector");
> final DaoFactory daoFactory =
> (DaoFactory)context.getParameter("daoFactory");
> final Transaction transaction =
> transactionDirector.getTransaction();
> final Voucher voucher = transaction.getVoucher();
>
>
> final WriteFuture future =
> session.write(transformator.transform(context.getResponse().getParameters()));
>
>
>
>
>
> future.addListener(new IoFutureListener<IoFuture>(){
>
> @Override
> public void operationComplete(IoFuture ioFuture) {
> try{
> WriteFuture newfuture = (WriteFuture)future.await();
> //WriteFuture future = (WriteFuture)ioFuture;
>
> //provera da li je podatak upisan.
> if (newfuture.isWritten()){
>
> //provera da li j u pitanju offline dopuna.
> if (voucher!= null){
> VoucherDao dao = daoFactory.getVoucherDao();
> //oznacavanje da je voucher iskoriscen.
> try {
> dao.updateUsed(voucher);
> } catch (DaoException e) {
> log.error("Nije oznaceno u bazi da je vaucer
> iskoriscen "+voucher.getId(),e);
> }
> }
> }else{
> //ako odgovor nije poslat terminalu vraca se vaucer u
> red.
> if (voucher != null){
> Queue queue = (Queue)context.getParameter("queue");
> queue.putVoucher(voucher);
> }else{
> //TODO register for autostorno.
> }
> TransactionDao dao = daoFactory.getTransactionDao();
> try {
>
> dao.updateDelivered(transaction.getTransactionId(),NOT_DELIVERED);
> } catch (DaoException e) {
> log.error("Nije oznaceno u bazi da poruka nije
> isporucena klijentu "+transaction.getTransactionId());
> }
>
> //provera da li je doslo do greske pri slanju odgovora.
> Throwable t = future.getException();
> if (t != null){
> log.error("Greska pri slanju odgovara klijentu za
> transakciju "+transaction.getTransactionId(),t);
> }
> }
>
>
> }catch(Throwable e){
> log.error("Ovde je problem",e);
> }
>
> }
>
> }
>
> );
> session.closeOnFlush();
>
>
> //System.out.println(""+context.getResponse().getParameter(TerminalKeys.ERR));
> context.endProcessing();
>
>
> }
>
> On Fri, Jul 25, 2008 at 4:50 AM, Wenrui Guo <[EMAIL PROTECTED]>wrote:
>
>> From my point of view, you had better post your code snippet from your
>> application. For example, the logic of client side.
>>
>> BR
>> anderson
>>
>> -----Original Message-----
>> From: Zlatko Josic [mailto:[EMAIL PROTECTED]
>> Sent: Friday, July 25, 2008 3:36 AM
>> To: [email protected]
>> Subject: problem
>>
>> Hi,
>>
>> I have server based on mina framework adn stupid socket client.
>> Messages sent to server have "\n\r" for end of message and messages
>> send to client have '\n' for end of message.
>>
>> When I start lot of clients some of clients never ends and server has
>> lotof sessionIdle method calls.
>>
>> what can be problem?
>>
>> Thanks for any help.
>>
>
>