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.
>

Reply via email to