| 
    
Hi,
the 2 seconds delay was fixed by a PTF, do not remember the number...
On Tue, 13 Apr 2004 10:49:44 -0600, Tim Gosnell wrote:
>I have a test set up where a client application writes to a data queue
>(inQueue) and reads from another one (outQueue).  I have written server
>applications in both Java and Cobol (included).
>I have the java client reporting the difference between
>System.currentTimeMillis(); at the start and at the end of each
>transactions.  I expect some variance in elapsed time reported.  The issue
>here is that the variance in elapsed time is wide.  I get millisecond
>reports varying from less than one millisecond all the way up the low 2000
>millisecond range.   
>Why would/how could the elapsed times for the transaction vary so much?
>These programs caps the number of transactions at 1000.  The connections are
>closed from the client.  The data being written and read in each case does
>not change. 
>Need help...
>Cobol Code:
>       ID DIVISION.
>       PROGRAM-ID.  TESTDQ.
>       ENVIRONMENT DIVISION.
>       CONFIGURATION SECTION.
>        SOURCE-COMPUTER. IBM-AS400.
>        OBJECT-COMPUTER. IBM-AS400.
>       DATA DIVISION.
>        FILE SECTION.
>        WORKING-STORAGE SECTION.
>      *  COPY QUSEC OF QSYSINC-QLIBSRC.
>      *  COPY QCAPCMD OF QSYSINC-QLIBSRC.
>         01 IN-QUEUE-NAME       PIC X(10) VALUE "TESTINDQ".
>         01 QUEUE-LIB-NAME      PIC X(10) VALUE "FOO".
>         01 OUT-QUEUE-NAME      PIC X(10) VALUE "TESTOUTDQ".
>         01 WAIT-TIME           PIC S9(05) VALUE -1 PACKED-DECIMAL.
>         01 MSG-SIZE            PIC S9(05) VALUE 50 PACKED-DECIMAL.
>         01 REQUEST             PIC X(50).
>         01 RESPONSE            PIC X(50) VALUE "This is the response".
>         01 INCREMENT           PIC S9(01) VALUE 1 PACKED-DECIMAL.
>         01 REQUEST-NUM         PIC S9(05) VALUE 1 PACKED-DECIMAL.
>         01 START-TIME          PIC S9(05).
>         01 END-TIME            PIC S9(05).
>        PROCEDURE DIVISION.
>        MAIN.
>                CALL "QRCVDTAQ" USING IN-QUEUE-NAME, QUEUE-LIB-NAME,
>                                       MSG-SIZE, REQUEST, WAIT-TIME.
>                CALL "QSNDDTAQ" USING OUT-QUEUE-NAME, QUEUE-LIB-NAME,
>                                       MSG-SIZE, RESPONSE.
>                ADD INCREMENT TO REQUEST-NUM.
>           IF REQUEST-NUM = 1000 STOP RUN.
>           PERFORM MAIN. 
>Test Client Application Code:
>package com.critrade.sandbox;
>import java.sql.CallableStatement;
>import java.sql.Connection;
>import java.sql.Driver;
>import java.sql.DriverManager;
>import java.util.Properties;
>import junit.framework.TestCase;
>import com.ibm.as400.access.AS400;
>import com.ibm.as400.access.DataQueue;
>import com.ibm.as400.access.DataQueueAttributes;
>import com.ibm.as400.access.DataQueueEntry;
>import com.ibm.as400.access.QSYSObjectPathName;
>/**
> * @author TimG
> *
> */
>public class TestDTAQClient extends TestCase
>{
>    static final int WAIT_TIME = -1;
>       DataQueue inQueue = null;
>       DataQueue outQueue = null;
>       AS400 host = null;
>       QSYSObjectPathName inQueuePath = null;
>       QSYSObjectPathName outQueuePath = null;
>      Connection con = null;
>      CallableStatement cs = null;
>    
>      String entry = "new test entry - new test entry - new test entry";
>    
>       public TestDTAQClient(String myName)
>       {
>               super(myName);
>       }
>       public static void main(String[] args)
>       {
>        junit.textui.TestRunner.run(new TestDTAQClient("testTransaction"));
>       }
>       protected void setUp() throws Exception
>       {
>               System.out.println("Establishing Database Connection");
>               host = new AS400("128.128.2.220", "foo", "bar");
>               DataQueueAttributes dtaqAttrib = new DataQueueAttributes();
>               try
>               {
>                       inQueuePath = new QSYSObjectPathName("foo",
>"testindq", "dtaq");
>                       
>                       inQueue = new DataQueue(host,
>inQueuePath.getPath());
>                       if(!inQueue.exists()) 
>                inQueue.create(dtaqAttrib);
>               }
>               catch (Exception e)
>               {
>                       e.printStackTrace();
>               }
>        try
>        {
>            outQueuePath =
>                new QSYSObjectPathName("foo", "testoutdq", "dtaq");
>            outQueue = new DataQueue(host, outQueuePath.getPath());
>            if(!outQueue.exists())
>                outQueue.create(dtaqAttrib);
>        }
>        catch(Exception e)
>        {
>            e.printStackTrace();
>        }
>       }
>       protected void tearDown()
>       {
>               try
>               {
>            if(con!=null){con.close();}
>               }
>               catch (Exception ex)
>               {
>                       System.out.println(ex.getMessage());
>               }
>       }
>    
>       public void testInQueueWrite()
>       {
>               try
>               {
>                       inQueue.write(entry);
>               }
>               catch (Exception e)
>               {
>                       e.printStackTrace();
>               }
>    }
>    
>    public void testOutQueueRead()
>    {
>        try
>        {
>            DataQueueEntry entry = outQueue.read(WAIT_TIME);
>        }
>        catch (Exception e)
>        {
>            e.printStackTrace();
>        }
>    }
>    
>    public void testTransaction()
>    {
>        
>        for(int i = 0; i < 1000; i++)
>        {
>                        
>            long start = System.currentTimeMillis();
>            testInQueueWrite();
>            testOutQueueRead();
>            long end = System.currentTimeMillis();
>            System.out.println("" + (end - start));
>        }
>    }
>}
>---
>Outgoing mail is certified Virus Free.
>Checked by AVG anti-virus system (http://www.grisoft.com).
>Version: 6.0.642 / Virus Database: 410 - Release Date: 3/24/2004
> 
-----------------------------------------------------------------------------
*** This messages was scanned for malicious contents ***
-----------------------------------------------------------------------------
Franco Biaggi
CH-6807 Taverne
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.