×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Hi Tommy,

        From one newbie to another, here is what We hacked out which works
quite well for me...  I am sure that it is all wrong - but it works...
<grin> YMMV

Regards,
Rick

Rick DuVall
Systems Manager
Dealer's Auto Auction of Okc, Inc.
rick@xxxxxxxxxx
(405) 947-2886
http://www.nothingisreal.com/dfki/no-word



    /**
     * Return the Generic As400 Kept in this class
     * 
     * @param None
     * @return As400 Object
     */
    public final static AS400 getMyAs400() throws ConnectGenException {
        if (as400 == null) {
            String initErr = initAccessObjects("xxx.xxx.xxx.xxx"); <put your
address etc. here>
            if (initErr.trim().length() > 0) {
                throw new ConnectGenException(initErr);
            }
        }
        return as400;
    }

    /**
     * Return the Generic Connection Object Kept in this class
     * 
     * @param None
     * @return Connection Object
     */
    public final static Connection getMyConnection() throws
ConnectGenException {
        if (conn == null) {
            String initErr = initAccessObjects("xxx.xxx.xxx.xxx");

            if (initErr.trim().length() > 0) {
                throw new ConnectGenException(initErr);
            }

        }
        return conn;
    }

    /**
     * Initialize the objects that access the iSeries. The goal here is to
     * prevent a situation where calls to an unmarshaller continually cause
new
     * connections to the iSeries to be established. The overhead for that
     * condition has been found to be burdensome.
     * 
     * @throws Exception
     */
    private static String initAccessObjects(String systemAddress) {

        String mthNam = "initAccessObjects";
        //String mPfx = msgPfx(mthNam);
        String rtnErr = "";

        //dftFilSep = System.getProperty("file.separator"); 

        // Create an AS400 object for the server that has the data queues.
        if (as400 == null) {
            as400 = new AS400(systemAddress);
            try {
                as400.connectService(AS400.COMMAND);
            } catch (AS400SecurityException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        //prt((mPfx + "as400 null?  " + (as400 == null ? true : false)), 2);

        /*
         * CrtDerDoc000 needs to access the system time. And who knows what
else
         * downstream may?
         */
        //iTGet = new GetiSeriesDateTime3(as400);
        //prt((mPfx + "Back from constructor of GetiSeriesDateTime3
object."), 2);
        if (conn == null) {
            conn = getConnection();

            if (conn == null) {
                rtnErr = "Unable to establish Connection object.";
            } else {
                UserInfoBean myUser = new UserInfoBean();
                myUserid = as400.getUserId().toString();
            }
        }
        return rtnErr;
    }

    /**
     * Get a connection to the iSeries that will persist throughout the
picture
     * numbering process.
     * 
     * @param host
     * @return
     */
    private static Connection getConnection() {

        String mthNam = "getConnection";
        String errMsg = "";
        Connection rtnCon = null;

        try {

            // The DriverManager must be aware that there is a JDBC driver
            // available
            // to handle a user connection request. The following line
causes
            // the
            // native JDBC driver to be loaded and registered with the
            // DriverManager.

            // Class.forName("com.ibm.db2.jdbc.app.DB2Driver");

            // Create the database Connection object that this program uses
in
            // all
            // the other method calls that are made. The following code
            // specifies
            // that a connection is to be established to the local database
and
            // that connection should conform to the properties that were
set up
            // previously (that is, it should use the user ID and password
            // specified).
            DriverManager
                    .registerDriver(new
com.ibm.as400.access.AS400JDBCDriver());
            //          Get a connection to the database. Since we do not
            //          provide a user id or password, a prompt will appear.
            //
            //          Note that we provide a default schema here so
            //          that we do not need to qualify the table name in
            //          SQL statements.
            //
            rtnCon = DriverManager
                    .getConnection("jdbc:as400://192.168.0.1");
        } catch (SQLException sqle) {
            sqle.printStackTrace();
        }
        return rtnCon;
    }

    public String getMyClassName() {
        String myName = "EntityAccessJdbc";
        String qualName = this.getClass().getName();
        int lastDot = qualName.lastIndexOf(".");
        if (lastDot > 0) {
            myName = qualName.substring((lastDot + 1), qualName.length())
                    .trim();
        }
        return myName;
    }

    private String msgPfx(String methodName) {
        return myName + "." + methodName.trim() + "():  ";
    }

    
    private static AS400JDBCDriver as400JdbcDriver = null;

    private String myName = "";

    private static AS400 as400 = null;
    
    private static String myUserid = null;

    private String dftFilSep = "";

    private static Connection conn = null;

    private Statement stm = null;
 

-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx 
[mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Holden Tommy
Sent: Friday, February 09, 2007 9:44 AM
To: java400-l@xxxxxxxxxxxx
Subject: Using JT400.

Ok I'm trying to figure this out.  Here is the code:

import com.ibm.as400.access.AS400;
import com.ibm.as400.access.AS400SecurityException;

class Base extends Object
{

 public static void main(String args[])
 {
      
   int as400number;
   AS400 myas400 = new AS400();
   as400number = AS400.SIGNON;
   
   try {
   myas400.validateSignon();
   }
   catch (AS400SecurityException i) {}
   catch (Exception e){}
   
   ObjectDef iObject = new ObjectDef();
     
   if (args.length == 0) {
       // do nothing
   }
   
   if (args.length == 1) {
     iObject.Name = args[0];
     iObject.Library = "*LIBL";
   }
   
   if (args.length == 2) {
      iObject.Name = args[0];
      iObject.Library = args[1];
   }
   
   if (args.length == 3) {
      iObject.Name = args[0];
      iObject.Library = args[1];
      iObject.ObjectType = args[2];
   }

   System.out.println();
   System.out.println(iObject.Name);
   System.out.println(iObject.Library);
   System.out.println(iObject.ObjectType);
  }
}

According to what I have read when the AS400 myas400 = new 
AS400(); is executed I should be prompted for sign on 
credentials (it's likely something I have misunderstood).  
When it hits that line no prompt appears and it seems to just 
step into the com.ibm.whatever and return.
Also if I pass the value *PGM as a variable it replaces the 
constant *PGM with the package name.  Please help a 
newbie....i'll buy a Krystal burger & we can all split it.

Thanks,
Tommy Holden


--
This is the Java Programming on and around the iSeries / 
AS400 (JAVA400-L) mailing list To post a message email: 
JAVA400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change 
list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx Before posting, 
please take a moment to review the archives at 
http://archive.midrange.com/java400-l.




As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 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.