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