Front cover Geac System21 commerce.connect Implementation on the IBM iSeries Server Gain useful insights through the product overview Follow the step-by-step guide to install commerce.connect Learn helpful usage and performance tips and techniques Yessong Johng Colin Brown Jim Hirsch John Lawler ibm.
International Technical Support Organization Geac System21 commerce.
Note: Before using this information and the product it supports, read the information in “Notices” on page vii. First Edition (December 2002) This edition applies to Geac call.connect Version 1.1, vendor.connect 1.1, and System21 3.5.2b SP4 or SP5. © Copyright International Business Machines Corporation 2002. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
Contents Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The team that wrote this redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.4 Restoring IFS objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 WebSphere node name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2 Errors on starting the client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.
5.3.3 Total connections and SQL server jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Performance topics for Java virtual machine (JVM) settings . . . . . . . . . . . . . . . . . . . 5.4.1 Initial Java heap size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.2 Maximum Java heap size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.3 Verbose garbage collection . . . . . . . . . . . . . . . . . . . .
vi Geac System21 commerce.
Notices This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used.
Trademarks The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: Redbooks(logo)™ AS/400® DB2® DB2 Universal Database™ IBM® IBM eServer™ iSeries™ MQSeries® OS/390® OS/400® Perform™ Redbooks™ S/390® SecureWay® SP™ TCS® VisualAge® WebSphere® The following terms are trademarks of International Business Machines Corporation and Lotus Development Corporation in the United States, other countries, or both: Lotus® Notes® Word Pro®
Preface This IBM Redbook introduces the new Geac commerce platform .connect applications – the call.connect and vendor.connect applications. These applications extend and enhance the capabilities of Geac System21 into the intranet and Internet. This redbook targets consultants or customers who work with these .connect applications. It explains how to install, maintain, integrate, and manage these applications on the IBM ~ iSeries server.
Find out more about the residency program, browse the residency index, and apply online at: ibm.com/redbooks/residencies.html Comments welcome Your comments are important to us! We want our Redbooks to be as helpful as possible. Send us your comments about this or other Redbooks in one of the following ways: Use the online Contact us review redbook form found at: ibm.com/redbooks Send your comments in an Internet note to: redbook@us.ibm.
1 Chapter 1. The .connect applications This redbook covers the two Geac .connect applications: call.connect vendor.connect This chapter introduces you to these two applications. Geac also offers the following applications, which provide security, process control and messaging, and integration with System21: secure.connect process.connect inter.connect These are part of the commerce platform. commerce.platform is the element of commerce.
1.1 call.connect Geac call.connect fills two roles. First, it is a telesales-oriented product. It is intended to help call center personnel actively sell to the customer and create and foster personal relationships. To support this type of active sales, call center personnel need instant access to all relevant information for the calling customer. Typical information includes order history, account information, and product information.
Figure 1-1 The call.connect buying list call.connect is a flexible order capture process that includes the following facilities: Dynamic buying lists: The lists of products that the customer is likely to purchase is created by combining a fixed list of products with a dynamic list, based on rules applied to previous purchase history.
1.2 vendor.connect Geac vendor.connect is a supplier self-service application. It is designed to support a cooperative relationship between customers using System21 and their suppliers. It makes information available, exchanges business documents, and allows controlled direct update facilities. vendor.connect improves supplier communication, aids planning, and reduces inventory investment in the supply chain. Figure 1-2 shows an example of the vendor.connect Replenishment page. Figure 1-2 The vendor.
Supplier planning: An enquiry allows the supplier to view the stock status and demand for products for which they are the preferred supplier. The demand enquiry includes relevant information from System21 – unallocated sales orders, expected demand from Material Requirements Planning (MRP), expected demand from Distributed Requirements Planning (DRP), and a historical demand element based on sales and customer-specific filters (for example, sales current year to date or previous year to date).
6 Geac System21 commerce.
2 Chapter 2. Architecture of the commerce.connect products The products that make up the commerce.connect platform originate from a diverse background. The challenge and vision is to bring these applications together into a single coherent, product strategy. This requires an architecture that can encompass the entire technology spectrum from the legacy applications to the leading-edge Enterprise Java applications.
2.1 The need for an architecture Why is an architecture necessary? Can’t we simply write programs that deliver the function that is required? The reasons for having an architecture are: Ever increasing demands are placed on systems in terms of security and availability. The need to extend the system to both customers and suppliers across the Internet is growing rapidly. Applications need to have this capability “architected in”.
The EJB standard is a server-side Java-based component architecture for building multi-tier, distributed, enterprise applications. WebSphere Application Server provides such services as: Authentication and security services: Are provided either via the host operating system or through Lightweight Directory Access Protocol (LDAP). Transaction management: Ensures integrity of data, not just within a single database, but across the enterprise.
2.1.3 The development process Geac uses a development process based around the Rational Unified Process, but heavily modifies it. Development process refers to a process that starts at project inception and goes all the way through deployment onto the customer’s site. Rational Software is the prime contributor to the Rational Unified Process. A key process difference to the normal Geac approach is that the process is iteration-based, rather than traditional waterfall based.
Figure 2-1 shows an example of the primary relationship between the main SalesOrder subsystem and its dependencies for call.connect. Item Supply SalesOrder Pricing Delivery Planning Customer Figure 2-1 SalesOrder subsystem dependencies Chapter 2. Architecture of the commerce.
For vendor.connect, Figure 2-2 shows the relationship between the controlling servlet and the vendor.connect subsystems. supplier contract Generic Servlet shipment fulfillment purchaseorder Figure 2-2 vendor.connect dependencies call.connect components are designed to be extensible, reusable, and replaceable. This means that the business functionality can be extended without needing to cut and paste entire programs. This helps to reduce maintenance overhead and allows existing code to be reused. 2.
call.connect messaging is implemented using IBM’s implementation of the Java Message Service (JMS), which itself uses MQSeries as the underlying messaging facility. You can learn more about JMS at: http://java.sun.com/products/jms/index.html Figure 2-3 shows how call.connect uses messaging. PC Client Client request WebSphere Application Server Order information Call Business Logic SalesOrder EJB Publish SalesOrder Business Event SalesOrder Subscriber Event Queue Figure 2-3 call.
2.2.2 vendor.connect vendor.connect uses messaging in conjunction with process.connect. The main requirement is to synchronize and respond to changes in System21 data such as purchase order updates. Figure 2-4 shows how this is achieved. Flow of Information to vendor.connect after System21 Update inter.connect process.
.connect application PC Client Rich Java Swing UI Web Browser UI Middleware HTML Web Pages Call Business Function commerce.connect Web server vendor. connect Servlets/JSPs System21 Call Business Function EJB Container call.connect EJBs Authenticate/ Authorize User vendor.connect EJBs Send XML Document inter. connect secure. connect Send XML Document WebSphere MQ Via Jacada Server SQL via JDBC process.
e-mail requesting information. The e-mail reply is then used to control the next step in the process. For example, in an order fulfilment process, if an order cannot be fully allocated, the process can e-mail the customer and ask if a part shipment is acceptable. Links in the e-mail send a yes or no response back to the process, which continues appropriately. 2.
to upgrade the hardware, software, or both. The minimum hardware requirements obviously depend on the usage profile of the customer as well as the base WebSphere Application Server requirements. 2.4.3 Functional architectural considerations This section details current known functional requirements that may likely have a major impact on the architecture of the system.
There are two disadvantages: The first is primarily stylistic. Using Toolbox for Java would make Java look more iSeries specific. The second is that Toolbox for Java would form its own connection independently of any JDBC connection. This would mean that updates made by iSeries programs called in this way could not easily be part of the same commit transaction as updates made through JDBC. The first objection is more apparent than real. Toolbox for Java is 100% Pure Java.
3 Chapter 3. Installing and setting up call.connect This chapter explains how to install and set up call.connect and vendor.connect. Prior to reading this chapter, you must be familiar with the skills listed for each product and have knowledge about System21 and its configuration. Installing call.connect involves a number of steps on both the server and on each client. Before starting, be sure to verify that all prerequisites are in place. Use care in following the steps that are provided.
3.1 Skills and prerequisites for installing, running WebSphere Application Server This section outlines the skills you need for the installation and the prerequisites that must be in place before you start. 3.1.1 Skills You must be familiar with the workstation, particularly with the operation of the keyboard and mouse. You should also be familiar with the following applications, which are used in the call.connect configuration.
Table 3-1 Disk space requirements Installation option *BASE (client application development software only) Option 1 (includes *BASE and WebSphere Application Server environment) During installation 500 MB 650 MB After installation 250 MB 450 MB iSeries software requirements The minimum software required for your iSeries includes: OS/400 Version 4 Release 4, or later (in an unrestricted state): To install and run WebSphere Application Server Advanced Edition for iSeries on your iSeries server.
DB2 Query Manager and SQL Development Kit for iSeries (5769-ST1): This is an optional product that can be helpful in developing client applications. All necessary fixes: For a current list of fixes, see: http://www.iSeries.ibm.com/WebSphere When you reach this site, click PTFs. Workstation hardware requirements Workstations and software configurations, other than those in the following list, are capable of running WebSphere.
Checklist of the basic steps Table 3-2 summarizes the steps required to install and configure call.connect. You can find additional information on each step in the following sections. For full details, see the Geac call.connect Installation Guide. Table 3-2 Summary of the call.connect installation and configuration Step Action Completed 1 Load System21, including standard applications and the Order Management application 2 Load Java components and configuration files for call.
1. From the CD, load the Order Management module as explained in the readme file of the CD. This installs the following libraries: – OSLOMF3: Contains data files – OSLOMD3: Contains all other Order Management objects The source is available in the OSLOMS3 library, but this requires a special order and is not normally shipped. 2. After you install the libraries, initialize the application with the following command: AMINSAPP APSR(O) APPL(OM) RLSL(03) LIB(OSLOMD3) 3.
4. Select option 10 to view the job log. Wait until you see the message WebSphere administration server QEJBADMIN ready. This may take several minutes. The first start after the installation may be even slower. Importing the configuration file Important: To import the configuration file, the WebSphere instance must be running, but the console must not be running. Run the import tool inside Qshell. Follow these steps: 1. Run the Start Qshell (STRQSH) command.
The import includes: The node The SalesOrder application and all contents The JDBC driver required The datasource required. The config.xml file contains the following variables, which are substituted on the import command and replaced with real names: $NodeName$: This is the WebSphere node name. The node name in WebSphere is case sensitive.
2. To start the console for the specified machine in the default environment, enter the command: adminclient This may be quite slow. If an instance other than the default instance is required, enter the port number. Otherwise, you may leave this blank. 3. Wait for the message “Console Ready” to appear in the console. The topology view appears by default. 4. Open the node, application server, and container to display the beans. Click the Application Server. Click Start and wait.
Journaling the files with an ASP To journal the files using an ASP, follow these steps: 1. Create a separate library for the journal receiver: CRTLIB LIB(OSLF3R) TEXT('OSL journal receiver library') 2. Create a journal receiver: CRTJRNRCV JRNRCV(OSLF3R/OSL0001) ASP(2) THRESHOLD(50000) TEXT('System21 journal receiver.') 3.
– Option = SJ – Command = STRJRNPF FILE(&L/&N) JRN(OSLF3/OSL) OMTJRNE(*OPNCLO) Press Enter. Figure 3-3 Creating a user-defined option 6. You return to the list of user-defined options. Press F3. 7. You return to the PDM menu. Select option 2 (Work with objects). 8. On the Work with Objects display, complete these tasks: a. Enter the library that contains the files to journal for example, OSLOMF3. b. Under object, set: • • • Name: *ALL Type: *FILE Attribute: PF-DTA Press Enter. 9.
To run SQL scripts, follow these steps: 1. Open the /Ordermanagement/Stored Procedures folder in Windows Explorer and double-click the script you want to run. 2. Sign on as a valid user, and the script opens. 3. Select Connection-> JDBC Setup (ODBC setup pre-release V4R5). 4. The Client Access Express ODBC Setup (32-bit) window (Figure 3-4) opens. Click the Format tab. 5. Ensure that the system naming convention (*SYS) is selected. Figure 3-4 Client Access setup for the naming convention 6.
Figure 3-5 Client Access server setup 10.After you make all necessary changes, click Apply and then click OK. As an alternative, you can perform these steps: 1. 2. 3. 4. 5. 6. 7. Open Operations Navigator. Sign on as OMUSER. Expand the iSeries. Right-click the database and select Run SQL Scripts. Open the /OrderManagement/Stored Procedures folder. Double-click the script to select it. Change the parameters as indicated in the previous set of instructions.
The prerequisites include: WebSphere 3.5.5 MQSeries 5.2 MA88 MQSeries classes for Java and Java Message Service (requires V4R5 or later) Setting up MQSeries This section explains how to configure MQSeries on the iSeries to be used by call.connect. Then it explains how to map the MQSeries queues onto JMS queues. Creating a queue manager First you must create a queue manager as explained here: 1.
Creating a queue Now create a queue as explained here: 1. On the Start Queue Manager display, type 18 next to CALLCONNECTQM and press Enter. 2. The Work with MQM Queues display appears. Press F6 to create the queue. 3. On the Create MQM Queue display (Figure 3-7), press F9 to display all parameters. a. Complete the following fields as shown here: • • • • Queue Name: SALESORDER.
Figure 3-8 Create MQM Object Authority display for your queue manager 3. Enter the GRTMQMAUT command again to grant MQM object authority to your queue. 4. On the Grant MQM Object Authority display (Figure 3-9), complete the following fields as shown here: – – – – – Object Name: SALESORDER.QUEUE Object Type: *Q User Names: *PUBLIC (see the following note) Authority: *ALL Message Queue Manager Name: CALLCONNECTQM Note: You do not need to give object authority to all users (*PUBLIC).
Additional files needed You need the following files to configure and run your message receiver: JMSAdmin.sh: JMSAdmin tool executable from QSH JMSAdmin.config: Configuration file used by JMSAdmin SendTestMessage.sh: Enables test messages to be sent You can find these programs in the /OrderManagement/mq directory on the iSeries server. If these files are missing, map to the iSeries root directory using Windows Explorer, navigate to the mq directory, and copy the missing files.
Additional WebSphere configuration Add the following argument to the command line arguments within your application server. This enables the Message Listener to start and close automatically with the enterprise beans. -Dcom.ibm.ejs.sm.server.ServiceInitializer= jba.rose.salesorder.messaging.SalesOrderListener Testing the messaging After call.connect is up and running, you can verify whether the messaging is working correctly by testing it as explained here: 1. Run the call.connect product. 2. Open a call.
Sign on as QSECOFR and create the profile as shown here: CRTUSRPRF USRPRF(OMUSER) TEXT('call.connect user profile') JOBD(OSLOMD3/OMJOBD) CCSID(285) Setting up call.connect users in the XML user directory You must set up all call.connect users on the server in the XML file /OrderManagement/log/UserDirectory.xml, with the same user IDs as those created on the iSeries.
5. On each display, press F15 to authorize the user to all options on that menu. 6. After all displays are presented, press F12 to return to the main user profile maintenance display. 7. Select F19 and type 1 next to the OM 03 application. Press Enter. 8. Type 1 next to all companies that are valid for this user. Press Enter. For more information, see Chapter 1 in the Geac System21 Administration Functions Active Enterprise Framework manual.
3.2.7 System21 data set up System21 data setup is covered in the Basic System21 Setup for call.connect manual. You must complete this setup in order for call.connect to operate successfully. This section outlines the steps to configure the Order Management module (see Table 3-3). These steps assume that other parts of System21, such as customers, items, depots, etc., are already setup.
4. Verify that the server is running. Enter the following command: WRKACTJOB 5. Verify that ADMIN jobs are running in the QHTTPSVR subsystem. Configuring the HTTP Server on the iSeries To configure the HTTP Server on the iSeries server, follow these steps: 1. In a Web browser, type: http://:2001 Enter your iSeries server name for iSeries. This is the port on which the administration of HTTP is listening. 2. Sign on as QSECOFR. 3. The AS/400 Tasks page appears as shown in Figure 3-11.
4. The IBM HTTP Server for AS/400 page appears as shown in Figure 3-12. Select the Configuration and Administration icon on the left. Figure 3-12 HTTP Server configuration From this point forward, the instructions are different depending on whether you are using IBM HTTP Server (original) or IBM HTTP Server (powered by Apache). Chapter 3. Installing and setting up call.
Configuring an HTTP Server for iSeries (original) To configure an IBM HTTP Server (original) at V4R5 or earlier, follow these steps. First, you should see the IBM HTTP Server Configuration and Administration page (Figure 3-13). Click the Configurations option on the left. Figure 3-13 IBM HTTP Server Configuration and Administration page Next you need to create a new configuration and a new instance, based on the IBM-supplied configurations and instances. This is explained in the following sections.
Creating a configuration Follow these steps to create a configuration: 1. Under the Configurations option, select the Create configuration link. 2. The Create configuration page appears (Figure 3-14). Follow these steps: a. Insert the name of the configuration, such as the iSeries name. b. Select the Create based on existing configuration option and enter CONFIG. c. Click Apply. Figure 3-14 Create configuration page 3. Select the Request Processing option on the left and select the Request routing link.
4. The Request routing page (Figure 3-15) appears. Insert the following actions, templates, and replacement file paths. This allows the system to find actual files when the user logs on to call.connect. Be sure to click the Insert after radio button: Action Pass Pass Pass Pass Pass Pass Pass URL template /callconnect/ /callconnect/*.gif /callconnect/callconnect.jnlp /callconnect/*.jar /callconnect/setup.exe /callconnect/help/ /callconnect/help/*.gif Replacement file path /ordermanagement/client/index.
6. The MIME types page (Figure 3-16) appears. Enter the following information for the system to recognize the .jnlp and .htm extensions. Be sure to click the Insert after radio button: – .jnlp extension • • • • File extension: .jnlp Content type/subtype: application/x-java-jnlp-file Encoding: 8 bit Quality: 1.0 – .htm extension • • • • • File extension: .htm Content type/subtype: text/HTML Encoding: 8 bit Quality: 1.0 Character Set: ISO-8859-1 Click Apply. Figure 3-16 MIME types page Chapter 3.
Creating an instance Now you must create a server instance: 1. On the left-hand panel, select Server Instances and then the Create server instance link. 2. The Create server instance page (Figure 3-17) appears. Follow these steps: a. Enter the server instance name, such as the iSeries name. b. Enter the configuration that was just created. c. Click Create. Figure 3-17 Create server instance page You see the message "Message The server instance was successfully created".
Configuring an HTTP Server for iSeries (powered by Apache) This section explains how to configure an HTTP Server for iSeries (powered by Apache) from the point where Configuration and Administration was selecteda: 1. To begin, the Manage HTTP Servers page (Figure 3-18) should be displayed. Select Administration (if it is not already selected) from the options across the top of the page. 2. Under HTTP Server Creation in the left-hand panel, select Create HTTP Server.
3. The Create HTTP Server page (Figure 3-19) appears. Fill in the following information when prompted on each page that appears next. Click Next on each page to advance. – – – – – – – Type of server: HTTP Server (powered by Apache) – recommended Server name: Give a suitable name. Could be the iSeries name. Configure base on existing: No Server root: Select the default Document root: Select the default IP address and TCP/IP port: Select the default Logging: Combined Click Finish on the last page.
Figure 3-20 HTTP Server name (HOMERA) global settings page 7. On the Serve New Directory wizard, complete the following tasks: a. Select Static Web Pages and Files. b. For Directory to Serve from, enter the client directory, such as /OrderManagement/client. c. For Alias, enter the name required on the browser, such as /callconnect/. d. Click Finish. 8. Click the OrderManagement/client directory under Configuration structure to select it. Chapter 3. Installing and setting up call.
9. On the Director /OrderManagement/client page (Figure 3-21), under Processing Requests, click Content Negotiation. Figure 3-21 Directory /OrderManagement/client page 10.On the Content Negotiation page, scroll about half way down the page to Additional Meta (MIME) information (Figure 3-22). Then follow these steps: a. Click Add. b. Enter the following information: • • • File Extension: .jnlp Type: content-type Value: application/x-java-jnlp-file c. Click Add. d.
Figure 3-22 Additional Meta (MIME) information for file extensions section 11.At the top of the page, select Administration. 12.Click the Manage HTTP Servers link in the left-hand panel. 13.On the Manage HTTP Servers page (Figure 3-18 on page 47), stop the HTTP Server and then start it. Attention: For increased security, configure the aliases in a similar way to those suggested for the original server. Configuring CallConnect.jnlp In Windows Explorer, modify the /ordermanagement/client/callconnect.
2. Launch Java Web Start for the first time. In a Web browser, go to: http:///callconnect/ 3. Click Install Java Web Start. 4. Select Run this program from its current location. 5. Select Yes to install and run setup.exe from the iSeries. 6. After this runs, select Launch call.connect to run the application. On the first time through, when you reach the prompt “Do you want to install and run: call.connect?”, select Start. 7. Enter the following information: – Default User: User for call.
Under normal circumstances, the application (for example, SalesOrder) continues to run in WebSphere when the admin job QEJBADMIN is stopped. This means that to stop the system overnight, the easiest way is to end QEJBSBS by using the following command: ENDSBS SBS(QEJBSBS) OPTION(*IMMED) This is a standard, tested iSeries command. It has the advantage of ending the JMS jobs and any extra WebSphere instances. Users who want to end the subsystem more gently, may want to use *CNTRLD end with a time limit.
3.4.1 WebSphere node name The node name in WebSphere is case sensitive. This is relevant when you start the console with AdminClient and when you specify an IIOP address for a JNDI lookup (for example, within the batch files which start client programs). It is also relevant to tools such as the XML export or import utility. Usually the name is entirely in lowercase. However, on some systems, it is entirely in uppercase and could, in theory, be a mixture of both.
3.4.5 Log files and debugging There are log files for both the client and the server, where you can find output produced while the applications are running. For normal running, it is more efficient to minimize the output to these files. However, if an error arises without an obvious solution, it is a good idea to check these log files, which may have information on the cause of the error.
Loadlog.bat If the logging level on the server is changed, these changes do not normally take effect until you stop and restart WebSphere. However, you can avoid this if you manually installed the CCClient folder. The loadlog.bat file in the /OrderManagement/CCClient folder may be run. You can change the logging level on the server to whatever is currently specified in the /OrderManagement/cfg/log.cfg file. You must edit this file (right-click the file and select Edit) as follows before you run it: 1.
/OrderManagement/test/cfg/log.cfg Open this file in a notepad, and change the following line: log4j.appender.basic.File=/OrderManagement/log/OrderManagement.log /OrderManagement/test/cfg/standard.properties Open this file in a notepad, and ensure that the following parameters are set as shown here: Datasource.stateless=as400Source system21.currentcompany= system21.user=OMUSER system21.password=OMUSER system21.
Figure 3-23 WebSphere console Creating JDBC drivers In the WebSphere console, create a Native JDBC driver as explained here: 1. Select the Types tab. On the Types page, select JDBC Drivers, right-click, and select Create. Alternatively, you can select the Topology tab. Select WebSphere Administrative Domain, right-click, and select Create-> JDBC driver. 2. In the JDBC Drivers Create window, you can enter anything for Name, but “Native” is conventional on an iSeries server.
After you decide a name, create the data source as explained here: 1. Click the Types tab. On the Types page, select DataSource, right-click, and select Create. Alternatively, you can click the Topology tab. Right-click WebSphere Administrative Domain and select Create-> DataSource. 2. Enter the following values in the Create a DataSource panel: Data Source Name = jt400 (or as specified in ejb_default.
5. Use the WRKLNK / command to ensure that *PUBLIC has *RWX authority to this folder. An exclamation mark (!) in front of the stdout and stderr files means that they will be cleared each time WebSphere is restarted, which is recommended. 6. Create the application server and wait for a message. 7. Start the application server to ensure that it is configured correctly. If it turns blue, click OK and then stop it. Otherwise investigate the problem and correct it before you proceed.
Figure 3-24 WebSphere console after deployment 3.5.3 Manual client installation For a simple setup for one or two users, it is possible and easier to configure each client individually rather than using Java Web Start. However, configuring each client individually is not as well controlled as Java Web Start. Each user has their own set of client software, where with Java Web Start, only one set of software is installed on the server.
Log.cfg Check the following line: log4j.appender.basic.File=C:\\callConnect\\CCClient\\callConnect.log callConnect.bat Verify that the ROSEAO_PATH is set as follows: set ROSEAO_PATH=C:\callConnect set SERVER= Verify that the CLIENT_PATH is set as follows: set CLIENT_PATH=%ROSEAO_PATH%\CCClient If you are using a test instance, change the port number in the following line: start javaw -Djava.naming.provider.
Table 3-4 Steps required to configure a WebSphere instance Step Action Completed 1 Set up test data in System21, including OM (optional) 2 Set up journaling 3 Set up a test job description 4 Set up a test user specifically for JDBC connections 5 Configure server 6 Run stored procedures and SQL scripts (optional) 7 Configure WebSphere 8 Configure JMS 9 Configure Java Web Start or install client software 3.6.
Test user You must set up a test user profile, such as TSTUSR, for the JDBC connections for the test instance. This user must use the job description created previously. You do not need extra profiles for the test system in UserDirectory.XML or System21. 3.6.3 Server configuration Copy the server objects into a new folder, such as /OrderManagement/test. This folder is used in the examples throughout the following sections. Next, change the configuration files listed in the following sections.
3.6.4 WebSphere administration This section covers the topics related to WebSphere. Starting the administration server QEJBSBS must be running. If the default instance is not required, QEJBADMIN and QEJBMNTR may be ended. Follow these steps: 1. Sign on as QSECOFR. 2. To start a WebSphere instance called test, call program STRWSSVR: CALL PGM(OSLOMD3/STRWSSVR) PARM(TEST) 3. Jobs TESTADMIN and TESTMNTR should be displayed in the QEJBSBS subsystem.
$appname$: This is the application name, such as SalesTest. It should be different from the default application name so that they can be distinguished if they are both running together. Note: The application name should be less than 11 characters in length. This way you can see it clearly on the iSeries using the WRKACTJOB SBS(QEJBSBS) command. Longer names are allowed, but they are truncated when viewed this way.
Important: You must maintain this structure. For example, the jre folder must be at the same level in your file structure as the client folder. 3. Verify that the files within c:\callConnect\CCClient are correctly configured as listed in the following sections. Ejb_default.cfg Verify the contents of this file as they are shown here: environment.dir=C:\\callConnect\\test\\CCClient\\ jndi.as400Source=jdbc/jt400 log.config=C:\\callConnect\\test\\CCClient\\log.cfg Log.cfg Check the following line: log4j.
a. Insert the name of the configuration, such as the iSeries name. b. Select the Create based on existing configuration option and enter CONFIG. c. Click Apply. 3. Select the Request Processing option on the left and select the Request routing link. 4. The Request routing page (see Figure 3-15 on page 44 for an example) appears. Insert the following actions, templates, and replacement file paths.
1. At the top of the page, select Configuration. 2. Under Configuration structure, verify that HTTP Server Name global settings appears in bold. 3. You should see the HTTP Server Name (HOMERA) global settings page (see Figure 3-20 on page 49 for an example). Under Web Site Definition, select Serve New Directory wizard. Click Next. 4. On the Serve New Directory wizard, complete the following tasks: a. Select Static Web Pages and Files. b.
Figure 3-25 Manage HTTP Servers page: Stopping the server Configuring CallConnect.jnlp In Windows Explorer, modify the file /ordermanagement/test/client/callconnect.jnlp as follows to reflect the alias that you previously set up: codebase="http:///callconnect/test/" Change the server name. Also change the following line to point to the correct iSeries and port number: PAGE 83The files to modify are: ejb_default.cfg log.cfg standard.properties See 3.6.5, “Manual client installation” on page 66. Chapter 3. Installing and setting up call.
72 Geac System21 commerce.
4 Chapter 4. Installing and setting up vendor.connect This chapter explains how to install and set up Geac’s vendor.connect product. Throughout the installation instructions, you will see variables in italics. For each of these variables, you need to provide a real name. For example, for the variable , you must change it to the name of the machine you are using. Keep in mind that all the required components are on the vendor.connect CD.
4.1 Preparing for the installation This section discusses the activities and checks that are required before you begin installing vendor.connect. 4.1.1 Skills required You must be familiar with the workstation, particularly with the operation of the keyboard and mouse. You should also be familiar with the following applications, which are used in the vendor.connect configuration.
Step Action Completed 6 Set up on the iSeries 7 Configure MQSeries 8 Install and configure the Work Management trigger handler 9 Active Architecture framework 10 Set up the Jconnects server 11 User IDs and security (LDAP or XML) 12 Set up database synchronization 13 Test the configuration 14 Back up the configuration vendor.connect components Several different types of objects are required for this installation such as iSeries library, JAR, and configuration files.
4.2.3 Restoring libraries Three additional libraries are delivered in the AS400 folder. These are held as save files. To restore them, use File Transfer Protocol (FTP) to copy them from your workstation to the iSeries server. See the following steps for an example: 1. Open a DOS prompt and enter the following commands: CD C:\AS400 FTP 2. Enter a user name and password for the iSeries. 3.
Wait for the $ sign to appear after each entry. Creating a new instance To create a new instance called VC on port 905, enter: crtnewinst -instance VC -bootstrap 905 -lsd 9005 For full details, see the WebSphere Application Server documents on the Web at: http://www-1.ibm.com/servers/eserver/iseries/software/WebSphere/wsappserver/docs/as400v35/ docs/doccntr.pdf Starting the administration server To start the administration server, follow these steps: 1.
Notes: Leave a space before each - sign. Leave a space after each keyword, for example, -adminNodeName , -import , and -substitute . There is only one pair of quotes around the entire substitution string. Figure 4-2 shows an example of an imported configuration. QSH Command Entry $ > cd /QIBM/ProdData/WebASAdv/bin $ ===> XMLConfig -adminNodeName homer -import /VendorConnect/vc.xml -substitute " nodname=homer;host=homer.jba.co.uk;port=85;IP=123.456.001.
Note: You must have QSECOFR user authority to read this table. $host$: This is the iSeries name and domain, such as needjava.jab.co.uk. $port$: This is the port for the WebSphere instance running vendor.connect. $IP$: This is the IP address of the iSeries server. Starting the application To start the application, follow these steps: 1. Start a WebSphere console. In a command prompt, change the directory to: ..
Configuring the HTTP Server on the iSeries To configure the HTTP Server on the iSeries server, follow these steps: 1. In a Web browser, type: http://:2001 Enter your iSeries server name for iSeries. This is the port on which the administration of HTTP is listening. 2. Sign on as QSECOFR. 3. The AS/400 Tasks page appears as shown in Figure 4-3. In this example, the pages are for an iSeries called Needjava. Select IBM HTTP Server for AS/400. Figure 4-3 AS/400 Tasks page 80 Geac System21 commerce.
4. The IBM HTTP Server for AS/400 page appears as shown in Figure 4-4. Select the Configuration and Administration icon on the left. Figure 4-4 IBM HTTP Server for AS/400 page Configuring IBM HTTP Server for iSeries (original) This section explains how to install IBM HTTP Server for iSeries (original) on an iSeries server. The instructions to install IBM HTTP Server for iSeries (powered by Apache) are not currently available.
After you select the Configuration and Administration icon, as stated in the previous section, the IBM HTTP Server Configuration and Administration page appears as shown in Figure 4-5. Select the Configurations link from the left-hand panel on the page. Figure 4-5 IBM HTTP Server Configuration and Administration page Now you need to create a new configuration and a new instance, based on the IBM-supplied configurations and instances.
Figure 4-6 Create configuration page Creating an instance Now you must create a server instance: 1. On the left-hand panel, select Server Instances and then the Create server instance link. Chapter 4. Installing and setting up vendor.
2. The Create server instance page (Figure 4-7) appears. Follow these steps: a. Enter the server instance name, such as the NEW in our example. b. Enter the configuration that was just created, which is CC in this example. c. Click Create. Figure 4-7 Create server instance page You see the message “Message The server instance was successfully created”. In WRKACTJOB SBS(QHTTPSVR), you now see ADMIN jobs and jobs with the name of the instance that was just created. All should be in wait states.
You must journal the following files at a minimum: All physical files in the OSLVCF3 library (except for files named XAPnn if they were there) The PMP02 and PMP09 files in the OSLD1F3 library The AGP00, AGP10, and AGP20 files in the OSLD2F3 library To journal these files with no ASP, follow these steps: Note: The following commands are sample commands only. You may vary them as required. 1. Sign on as QSECOFR. 2.
3. The Specify Option File to Work With display (Figure 4-8) appears. Press Enter to accept the defaults (File QAUOOPT, Library QGPL, and Member QAUOOPT). Specify Option File to Work With Type choices, press Enter. File . . . . . . . . . . QAUOOPT Library . . . . . . . . Member F3=Exit . . . . . . . . . F5=Refresh QGPL QAUOOPT Name, F4 for list *LIBL, *CURLIB, name Name F12=Cancel Figure 4-8 Working with the user-defined options 4. On the next panel, press F6 to create a new user-defined option.
– Name: *ALL – Type: *FILE – Attribute: PF-DTA 9. On the following display, type SJ next to each file that you want to journal. To journal all physical files, type SJ on the first line and press F13. User profiles The vendor.connect library list is controlled by a job description attached to a special user profile as defined here. Job description: The vendor.connect library list is set within a job description OSLVCF3 in the OSLVCF3 library that is supplied as already configured. If you must use other .
4.2.6 MQSeries This section explains how to set up MQSeries for vendor.connect. Creating a queue manager You must first create a queue manager: 1. Enter the following command: WRKMQM If a default queue manager doesn't already exist, create one using the following command: CRTMQM MQMNAME(VCQM) TEXT('vendor.connect queue manager') DFTQMGR(*YES) Alternatively, press F6 on the WRKMQM display. You must create your queue manager as the default. You cannot change this at a later date.
4.2.7 Work Management Trigger Handler for the iSeries The OSLVCD3/TRGRHNDLR CL program is provided to start the Work Management Trigger Handler. The program runs a shell script, which is found in the vendorconnect folder on the iSeries (trigger.sh).
com.Geac.erp.system21.aef/xml/maps. Inside these folders, there are additional folders that represent the iSeries libraries where the System21 PMPxx and PLPxx tables reside. You must also change these folder names to match your libraries (see Figure 4-10). Figure 4-10 File structure for libraries named Xyz… Updating the events rules There are two ways to update these event rules: Edit the XML documents provided (preferably using Notepad).
1 STATIC 1 AFTER 1 COMPARISON VNDR02 1 AFTER 1 AFTER 9 IN
4.2.9 JConnects server This links vendor.connect back in to System21. Copy the Jacada directory to the root of your iSeries server. Make sure the files are writable by running the WRKLNK command as explained earlier. ConnectorManager.xml Edit the /VendorConnect/deployed/ConnectorManager.xml file. Change the following entries as appropriate to your iSeries setup: Z1 XXX . . . your iSeries . . .
Change the ldap.server parameter to the name and domain of the iSeries that is running the LDAP service.
Using LDAP If you are using LDAP, you must install an IBM SecureWay client to create the administrator user account. If you are using Geac’s commerce.platform, the following settings may already be configured, but you should still check them. Edit the /vendorconnect/deployed/SecurityManager.xml file. Check the authorization_context section: PAGE 1075. The Directory Properties window (Figure 4-12) opens. Complete these tasks: a. Select the Start server when TCP is started box. b. Set Administrator name as CN=root. c. Click the Password button. Enter and confirm your password. Figure 4-12 Directory Properties: General page Chapter 4. Installing and setting up vendor.
6. Click the Databases/Suffixes tab (Figure 4-13). a. Under Suffixes, enter a new suffix of: ou=xxx,o=yyy,c=zzz, Note the following explanation: ou o c Organization unit Organization Country (region) b. Click Add. Figure 4-13 Directory Properties: Database/Suffixes page Note: Password protection is set to SHA by default. This means that it cannot be decrypted. If a password is forgotten, it cannot be recovered. However, the security officer can create a new one.
If you don't do this and leave it set to localhost, you will receive a warning about attempting to contact LDAP on local machine. You may ignore this message. 3. Select Start-> Programs-> IBM SecureWay Directory-> Directory Management Tool. If this is the first time this has been used, you receive a warning message about the suffix not containing any data. You may ignore this message. 4. Click the Add server button at the bottom of the left-hand panel.
5. In the left-hand panel, select Server-> Rebind. On the Rebind to server panel (Figure 4-15) on the right-hand side, complete these tasks: a. b. c. d. Select the Authenticated option. Enter CN=root for User DN. Enter the password you entered on the Add directory server display. Click OK. Figure 4-15 Rebind to server panel 98 Geac System21 commerce.
6. Select Entries-> Add Entry in the left-hand panel. On the Add directory entry panel (Figure 4-16) on the right-hand side, complete these tasks: a. b. c. d. Leave the Parent DN field blank. In Entry RDN, enter the full name of your suffix (for example, ou=ges,o=geac,c=uk). Select the Organizational unit option. Click Next. Figure 4-16 Adding an entry 7. For ou, enter (again) the organizational unit (ges). Click Create. Chapter 4. Installing and setting up vendor.
Creating the vcadmin user in IBM SecureWay To create the vcadmin user, follow these steps: 1. Select Tree-> Browse tree from the left-hand panel. In the Browse directory tree panel (Figure 4-17), complete these tasks: a. b. c. d. Select the directory base (for example, “ou=ges,o=geac,c=uk”) so that it is highlighted. Click the Add button at the top of the panel. In the Entry RDN field, enter cn=vcadmin. Click Next. Figure 4-17 Creating the vcadmin user 100 Geac System21 commerce.
2. In the create an LDAP User window (Figure 4-18), complete these tasks: a. For Common name, enter vcadmin. b. For Last name, enter Administrator. c. Click the Business tab. Scroll down to the bottom of the page, and enter a password in the userPassword field. d. Click the Other tab. Scroll down and locate the uid field, and enter vcadmin. e. Click Create. Figure 4-18 Creating vcadmin detail showing the Other tab Creating the authorization rule The authorization rule is used by vendor.
Figure 4-19 Logging on as vcadmin 3. Logging into the vendor.connect system as the vcadmin user takes you to the User Maintenance functions, rather than the standard supplier’s Web site. The initial user maintenance page shows any existing users. Clicking an existing entry allows you to edit the user profile. Click Add to add a new user. 4. Enter a valid supplier code and address code, as well as the user ID, contact name, surname, and password to add a user as shown in Figure 4-20. Then click Save.
4.2.11 Database synchronization from System21 to the vendor.connect database To set up the correct library lists needed for the database triggers to fire successfully, you must set the library list. You can do this manually, for example, using the Edit Library List (EDTLIBL) command. Or you can do this by selecting a System21 option that has the workflow (OSLWFF3) library in its list (for example, 41/PMP). Leave the option, but stay in the System21 menus and then use the STRSQL command.
4. Run the set of SQL commands that are detailed in the following SQL example. They cause triggers to be fired so that the System21 data will be synchronized into the VendorConnect database. You can find the SQL in the SQL to sync dbs on initial load.txt file in the SQL folder. 5. If the amount of data to be synchronized is large, you may need to edit the SQL to sub-select the data. After messages in the MQSeries queues subside, you can run the next sub-select.
4.2.12 Testing the vendor.connect Web site You are now in a position to test the Web application. Launch Internet Explorer and enter the following URL: http:///VendorConnect/logon.jsp 4.2.13 Backing up the configuration components If all is well, you should back up the configured components, so that they can be restored in case of any emergency. Several folders must be saved (see the list of components to install in 4.2, “Installing vendor.connect” on page 74).
Under normal circumstances, the application (for example, VennConn) continues to run in WebSphere when the admin job QEJBADMIN is stopped. This means that to stop the system overnight, the easiest way is to end QEJBSBS by using the following command: ENDSBS SBS(QEJBSBS) OPTION(*IMMED) This is a standard, tested iSeries command. This has the advantage of ending the Trigger Handler, AIF controller jobs, and any extra WebSphere instances.
5 Chapter 5. Performance tuning This chapter covers performance tuning of Geac System21 products. © Copyright IBM Corp. 2002. All rights reserved.
5.1 Hardware When you tune your configuration and system for performance, always start with the hardware requirements for the configuration. For applications that use Enterprise JavaBeans (EJBs), as both call.connect and vendor.connect do, you must be running one of the following models with the corresponding feature code: Model 170 feature 2385 Model 720 feature 2062 Model 270 feature 2252 Model 820 feature 2396 For all models, we recommend that you meet the minimum memory requirement of 1 GB.
Model 270 feature 2252 Processor CPW 950 Interactive CPW 0 Model 820 feature 2396 Processor CPW 950 Interactive CPW 35 Notice the considerable variation in the processor CPW and the low interactive CPW. The variation in processor CPW may be because, although CPW is a good indicator of RPG and Cobol performance, it is not a good indicator of Java and WebSphere performance. Java performance is significantly affected by processor features, such as L2 cache, which do not affect the CPW rating as much.
Native driver: This driver may only be used by a Java application that is running on the iSeries. In most cases, if you are running WebSphere on the iSeries, the native driver offers better performance. If you used the standard configuration, as described in Chapter 3, “Installing and setting up call.connect” on page 19, then you will use the native driver. Connections made by the native driver are serviced by jobs of the name QSQSRVR in the QSYSWRK subsystem. These are prestart jobs.
Figure 5-3 Display Prestart Job Entries list Figure 5-4 shows the Display Prestart Job Entry Detail for the program QSQSRVR, highlighting the number of jobs. Note the following parameters for this example display: Start jobs parameter: The default is *NO. This means that the jobs do not start with the subsystem. They only start when the first connection request is received. This causes WebSphere to start slowly.
You must coordinate the tuning of these server jobs with the tuning of the WebSphere datasources. For the moment, we assume a simple default WebSphere setup: Only one instance of WebSphere is running. Only one application (for example, call.connect) is running. The datasource used by that application has not been modified. There is only a small number of users. As mentioned earlier, the WebSphere administration job uses five connections.
command, by default, does not show prestart jobs that are waiting for a connection. However, if you press F14, they are shown. Figure 5-5 shows the QSQSRVR jobs in the Work with Active Jobs display. Look at the Status column. PSRW indicates that the job is waiting for a connection. These are the jobs that were not shown until you pressed F14. If you press F14 again, you hide these jobs.
It is necessary to check carefully that the server jobs are not in use. You can check whether the jobs are in use in a way that is similar to checking the QSQSRVR jobs. For example, you use this command: WRKACTJOB JOB(QZDASOINIT) If some jobs appear immediately, then some clients are connected. Look at the job log (by selecting option 5 and then option 10), and you should see the user name and the IP address of the client. If no jobs appear, then press F14, and some in the status PSRW should appear.
5.2.3 Subsystems and memory pools By default, WebSphere jobs run in the QEJBSBS subsystem in the base memory pool. In addition, WebSphere applications, such as call.connect and vendor.connect, substantially use the native JDBC server jobs that run in QSYSWRK. This is also in the base memory pool, by default. If your system runs no other significant applications, then this simple setup may be sufficient.
2. End the QEJBSBS subsystem by using the following command: ENDSBS QEJBSBS 3. View the shared pools with the WRKSHRPOOL command. 4. On the Work with Shared Pools display (Figure 5-8), choose an available pool, for example, *SHRPOOL1, and enter your chosen size and maximum activity level. Figure 5-8 WRKSHRPOOL command showing the pool defined for WebSphere In this example, shared pool 2 is setup for use by WebSphere. In fact, this was done before the previous WRKSYSSTS command was run.
Figure 5-9 The Display Pool Definitions display for QEJBSBS In this example, the modification was already made using shared pool 2, so subsystem pool 2 appears. Note that it is a coincidence that pool 2 of this subsystem happens to be shared pool 2.
Figure 5-10 Display Routing Entry Detail display 12.End the SQL server prestart jobs by entering the following command: ENDPJ SBS(QSYSWRK) PGM(QSQSRVR) 13.Add the storage pool to the QSYSWRK subsystem. 14.Verify whether the QSYSWRK subsystem was already modified by entering the following command: DSPSBSD SBSD(QSYSWRK) 15.On the next display, select option 2 to see the pool. 16.
assigned but this could vary. However because both this entry and the QEJBSBS entry above specify *SHRPOOL2, the two sets of jobs will share the same memory pool. 17.Change the SQL server prestart job to use the new pool: CHGPJE SBSD(QSYSWRK) PGM(QSQSRVR) POOLID(2) You may want to verify this step: a. Use the following command: DSPSBSD SBSD(QSYSWRK) b. On the next display, select option 10 for prestart job entries. c. On the next display, type 5 next the QSQSRVR entry and press Enter.
Figure 5-13 WRKSYSSTS display showing the memory pool names As in the other images, shared pool 2 was used. It is not appearing as the last system pool. That’s because the system was restarted since the configuration change was made, and during the following start, QSYSWRK started before QINTER. 22.Check the QSQSRVR jobs by using the following command: WRKACTJOB JOB(QSQSRVR) 23.
26.On the Work with Active Jobs display (Figure 5-15), press F11 to see the Pool column. All the jobs, except the subsystem monitor QEJBSBS, should be running in your new pool (the number noted in step 21). If the new pool is not being used, then verify that you followed step 9 through step 11 on page 117 correctly. Figure 5-15 WRKACTJOB command showing the pool numbers for the QEJBSBS jobs As in Figure 5-13, the jobs are using pool 3. This matches the *SHRPOOL2 entry in the earlier WRKSYSSTS display.
If WebSphere is the only significant application on your system, then the performance adjuster may do a reasonable job. In this case, there may not be any value to a dedicated memory pool for WebSphere. If WebSphere will run alongside more traditional interactive and batch applications, such as System21, then the performance adjuster does not seem to do a good job. It appears to favor interactive jobs and reduces the memory of the WebSphere subsystem so much that WebSphere performs very poorly.
5.3.2 Stateless connections The majority of call.connect beans and all vendor.connect beans are common stateless session beans and use stateless connections. One method call (typically one interaction between the client and the server) obtains a stateless connection from the WebSphere datasource, performs the necessary work, and then returns the connection to the pool. If all clients would execute a method at exactly the same time, then you would need one connection per client. A single call.
Figure 5-17 The DataSource panel Advanced page of the WebSphere console 5.3.3 Total connections and SQL server jobs If you estimated the number of stateful and stateless connections required by your applications, then you can easily estimate the total number of connections. You should add these two and the five connections used by the WebSphere administration server job QEJBADMIN. If you are using multiple applications (for example, call.connect and vendor.
5.4.1 Initial Java heap size –Xms is an important parameter that controls the initial Java heap size. It is followed by the size, which is usually an integer followed by m (represents megabytes). The default is 32 Mb, which would appear as –Xms32m. Figure 5-18 highlights the Xms parameter on the WebSphere Console’s Application Server panel.
5.4.3 Verbose garbage collection The JVM has an option called verbose garbage collection . This means that the garbage collector outputs statistics on its activity. To activate the option, add the parameter –verbosegc to the command line arguments in the Properties window of the application server. You must keep this option separate from other options by adding a space but the sequence is not important. The messages are sent to the standard output file, which was defined when the application was created.
A simple way to view this file is to map a PC drive to the iSeries integrated file system (IFS) and then use a PC editor. Another simple way to view this file is to use the OS/400 Edit File (EDTF) command. An another less friendly but useful technique is to use the Qshell tail command. You can learn more about each of these techniques in Chapter 6, “Tips and techniques” on page 137. The following example shows sample output produced by verbose garbage collection.
If you have addressed most other performance issues, then you may want to try this technique. At V5R1, the JIT compiler was greatly enhanced, although the benefit may not be significant. Although some improvement in application startup may still be achieved. Refer to Chapter 3, “Installing and setting up call.connect” on page 19, and Chapter 4, “Installing and setting up vendor.connect” on page 73, for the names and locations of the JAR files used by the application.
place of the OS/400 system class loader. This custom class loader does not detect the static programs. To enable the system class loader to load the classes and detect the static programs, you must add the classpath parameter to the JVM settings. Do this in the Command line settings field of the application server settings (the same field as the –Xms parameter) as shown in the example in Figure 5-21. The parameter is –classpath followed by a space and the classpath value.
If you have a powerful editor, you may be able to replace all the colons with line feeds. This makes the parameter much easier to edit. You would rejoin the lines with the colons between each entry. You may also want to consider starting a Windows command prompt, navigate to the directory that contains the JAR files (using a mapped drive), list the JAR files using the DIR command, and output the result to a file using redirection. he following command creates a file called jars.
In this example, we completed the following tasks: 1. The command line arguments were copied to one Notepad session and the parameter name –classpath and a space were added at the end. 2. A file with a list of the JAR files was created and opened in another Notepad session. 3. The qualification was added to the beginning of the first line and the colon was added to the end.
Figure 5-23 Advanced tab of the Enterprise Bean panel Performance requirements We have not yet determined precise guidelines for sizing these applications. Our standard tests normally use a test harness that emulates a specified number of users entering orders. A 20 second think time is used. For example, the simulated users wait for 20 seconds between creating the order header and the first line, then wait another 20 seconds between this line and the next, etc.
If transactions fail for this reason, then the client receives such messages as JTA Transaction Aborted. If you see this message on the client or transactions fail, but you have not determined why, then you may want to increase this value. If you prefer long waits to failures, then it is worth it to try a large increase such as adding a zero (multiplying by 10). Transaction inactivity time out This is another WebSphere timing parameter that can stop a long running transaction.
“Ping” in this context refers to sending a simple test message, which requires only a simple acknowledgement. It is a similar idea to the network command PING, which can be used to test a TCP/IP network. Figure 5-25 shows the Ping interval, Ping timeout, and Ping initial timeout parameters at the bottom half of the Advanced page of the Application Server panel.
Figure 5-26 The Advanced page of the DataSource panel Connection time out This is the maximum time that WebSphere waits for a connection when all the connections in the pool are in use. If you frequently encounter connection time outs, then consider increasing the size of the connection pool. See 5.3.2, “Stateless connections” on page 123, and 5.3.3, “Total connections and SQL server jobs” on page 124, for more information.
receives an exception indicating that the connection was pre-empted. If valid transactions suffer from this problem, then you may want to increase this setting. 136 Geac System21 commerce.
6 Chapter 6. Tips and techniques This chapter offers various tips and techniques for using Geac System21 products. © Copyright IBM Corp. 2002. All rights reserved.
6.1 The iSeries integrated file system Several releases ago, IBM reorganized considerably the file system of the iSeries server. A new UNIX- or Windows NT-like file system called the integrated file system (IFS) was introduced. The original file system, for example QSYS, other libraries, and their contents became part of this new system. Files in new areas of the IFS are quite different than the familiar database files of the iSeries. They do not have fixed length records.
QIBM: This directory does not have any special property, but most IBM supplied files are within this directory. Two important subdirectories are ProdData and UserData. Within each of these, there is usually a directory for each IBM product that uses stream files. For example, both contain a directory called WebASAdv. ProdData normally contains files that would not change in normal usage. UserData contains files that may change during normal usage.
6.1.2 Mapping a PC drive to the iSeries IFS An easy way to explore and view the IFS is to map a PC drive to some or all of the IFS and use PC tools such as Windows Explorer. To do this, you must set up a Windows-style file share on the iSeries. You must also install Operations Navigator and create a connection to the appropriate iSeries server. To create a share, follow these steps: 1. Start Operations Navigator. 2. Expand the system you need. Log on if necessary. 3.
Figure 6-1 Creating a file share To create a more specific share, use a different name and select an appropriate directory in the path name field. You can find this directory using the Browse button. You may want to create a share to the /OrderManagement directory of the application. A logical name is to use OrderManagement. Mapping a PC drive to one of these shares is like mapping a drive to a share on a Windows NT server.
6.1.3 Editing an iSeries stream file using a PC editor If you exposed some or all of your iSeries IFS using a file share, then you can edit many configuration, log, and source files with a PC editor. Remember that not all stream files contain readable text. If you accidentally open one and it is not readable text, then be sure to exit without saving. If you save the file, you may corrupt it even though you did not make any deliberate changes. You must use the editor with care.
If it is not easy to create the file again, then you can view it by using an OS/400 command, such as Edit File (EDTF), or copy the file to a file with an ASCII CCSID using a command like this example: CPY OBJ(ebcdic-file-name) TOOBJ(ascii-file-name) TOCCSID(819) DTAFMT(*TXT) Here ebcdic-file-name is the name of the file that you cannot read on the PC and ascii-file-name is a new name that does not yet exist. You may need to fully qualify both names (unless you used the cd command first).
Like cd, qualified names, except for /, must be in single quotation marks. Figure 6-2 The WRKLNK command showing the root directory Option 5 (Display) is rather important. If you type it next to a file, the EDTF command is called in display mode. If you type it next to a directory, the contents of that directory are shown. If you enter a directory using option 5, then you can return to the parent directory by pressing F12.
The Save Object (SAV) command is slightly confusing since it does not want only the save device name (for example, TAP01), but the name of its device description in the new IFS syntax. An example is /qsys.lib/tap01.devd. Figure 6-3 shows the Save Object display. Figure 6-3 Using the SAV command to save the OrderManagement directory You can create directories using the CRTDIR command, which may also be called MKDIR or MD.
Another common problem can be caused by inconsistent use of users. If you run jobs, such as JMS as QSECOFR and then later as OMUSER, you may have an authority problem. It is likely that the log files created when QSECOFR was used cannot be overwritten by the normal user used later. 6.1.9 Editing an iSeries stream file using the OS/400 EDTF command In most cases, the easiest way to edit a stream file is with a PC editor on a mapped drive.
scrolls. There are few restrictions on commands and their parameters. The commands can be rather inconsistent and help can be non-existent or very basic. On the other hand, there are some useful features such as input and output redirection and piping. A typical UNIX command screen, usually called a shell, is similar although the range of commands and their syntax are not the same as DOS.
prompt. DOS command screens commonly use the currently drive and directory name followed by a >. You can usually type additional commands before the current one has completed, but they may not appear until the current command has completed. The Qshell has a current directory that is similar to that of UNIX and OS/400. A DOS command session also has a current directory but one that Qshell does not have. The current directory is controlled with the cd command.
Even Qshell may be confused by the unusual characters. However in this case, there is a solution. That is you may quote the name. The easiest way to delete the problem file is to navigate into its directory using cd and then delete it by using the rm command. Enter the file name in double quotation marks to prevent Qshell being confused by any special characters, for example: rm “c:\OrderManagement\log\OrderManagement.log” If you want to use the file, then you can use Qshell commands.
This can be useful for monitoring log files in real time. The session in which you use this command remains in use. When you are finished, use System Request 2 to stop the command as shown here: tail –f /OrderManagement/log.stdout.txt This command shows the last few lines of the standard output file of the Order Management application. If more lines are written, they are output. This is mentioned in 5.4.3, “Verbose garbage collection” on page 126. 6.2.
This creates the variable DIRECTORY if necessary and set its value to /OrderManagement. There are no types for variables. They are all strings, although some commands may attempt to interpret the contents as numbers. Names are case sensitive. The variable defined in the previous example is not the same as Directory or directory. It is typical to use names entirely in uppercase, but this is not required. You may reference a variable by using $ followed by its name. This is replaced by its current contents.
The following Qshell command runs the script myscript.sh and sends both standard output and standard error to the file myscript.out: myscript.sh > redirect.out 2>&1 If the file used for redirection already exists, then it is overwritten. If you want to append to the file rather than to overwrite it, use >> or 2>>. The following command is similar to the previous example, but appends the output to the file: myscript.sh >> redirect.
Figure 6-5 WRKACTJOB command showing the subsystem QEJBSBS 6.3.1 Instance monitor jobs If you want to confirm that a particular job, QEJBMNTR for example, is an instance monitor and for which instance, look at its job log. To look at the job log, type 5 next to the job in the WRKACTJOB display and then select option 10. If it is a monitor job, you see a call to the QEJB/QEJBMNTR program. The second parameter to this call is the name of the admin.properties file of the instance.
Figure 6-6 Job log of the QEJBADMIN job This confirms that this is an instance administration job and that it is ready. You should now be able to successfully connect a console to the instance. This message may be followed by some more messages about SQL server jobs. If you are using multiple instances, then you may need to check the TCP/IP port that the instance is using. In the job log, position the cursor on the ready message and press F1 for help. You see a message like this example: Message . . . .
Figure 6-7 The NETSTAT command showing ports 900 and 902 If you have trouble connecting a console to the administration server, although the job says that it is ready, then it may be a name problem. If a console is started, then you can find the full name of the administration server job by selecting the node and looking for Process ID on the General page.
Then look in the job log of the administration job of the instance where you will see the full name of any application servers that it has started. Alternatively, if you select the application server in the console and look on the General page, you will see the process ID, which is the full ID of the job. However, the simplest method is to choose application server names that give easily recognizable and unique job names, for example, prefix applications within the Test instance with Test.
Figure 6-8 The WRKDTAARA command showing the SF99147 data area If you see a data area, type 5 next to it to display its contents. The Display Data Area display in Figure 6-9 shows a typical result. Figure 6-9 Option 5 within the WRKDTAARA command showing data area contents The PTF level is indicated in two ways: The number after the PTF ID 3.5.x number at the end Also, verify that the OS/400 release level (V5R1M0 in this case) matches your current release level.
An alternative way is to view the product.xml file. If you used the default directory for your WebSphere installation, then this is C:\WebSphere\AppServer\properties\com\ibm\WebSphere\product.xml. However, the C: drive and the initial directories \WebSphere\AppServer may be overridden while installing WebSphere on your PC. If you know how to start the console, then check from where the console is running. The default location of the console command is C:\WebSphere\AppServer\bin\adminclient.bat.
Check that you specified the correct system name and port when you started the console. If you start the console from the command line, then it takes two parameters. The first is the system name, and the second is the port. If you start the console using a menu item, desktop icon, or batch file, then look into the definition of the item to ensure that the system name and port are correct. As a diagnostic step, you can try to run the console from a Windows command prompt: 1. Start a command prompt. 2.
6.5.3 Checking the iSeries database name In a few contexts, the name of the DB2 database on the iSeries server is required rather than the system name. Two such contexts are creating a datasource and specifying the database for stateful connections. The database name is normally the same as the system name, but it can be different. It is even possible that it is not set at all. If the database name was not set, then SQL software may fail, but RPG or Cobol software that did not use SQL would still work.
Related publications The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this redbook. IBM Redbooks For information on ordering these publications, see “How to get IBM Redbooks” on page 161.
162 Geac System21 commerce.
Index Symbols # 150 $ 147, 151 $ prompt 147 $1 150 $2 150 *BASE 115 *INTERACT 115 *LOCAL 160 *MACHINE 115 *SHRPOOL1 115 *SHRPOOL2 115 . (dot) 151 .
creating an EJB container 60 creating DataSources 58 creating enterprise beans 60 creating JDBC drivers 58 creating the application server 59 cross-sell 3 CRTJVAPGM (Create Java Program) command 127 crtnewinst 77 current directory 148 custom class loader 128 D database files 138 database name 160 database synchronization 103 database triggers 87 datasource settings 134 DB2 Universal Database (UDB) 21 DEL 144 Delete Java Program (DLTJVAPGM) command development process 10 direct call 18 Display Java Program
Java Web Start in test 67 JConnects server 92 JDBC database access 17 JIT compiler 128 JMS 9, 12 JNDI/MQ objects 35 JNI (Java Native Interface) 18 job description 87 journal files must be journaled 27, 85 must files list 27 journaling a single file 28 journaling multiple files 28 journaling with an ASP 28 JTA Transaction Aborted message 133 JVM settings 124 JWS.bat 51 configuring 70 L Languages and Encoding 44, 68 LDAP 9, 94 library/file.member 139 Loadlog.bat 56 log files 138 Log.
quote site namefmt 1 139 QZDASOINIT 114 R Rational Rose 10 Rational Unified Process 10 recursive delete 146 Redbooks Web site 161 Contact us x redirection 151 remote invocation 18 Request Processing 43, 68 Request Routing 43, 68 Resource Analyzer 155 resource pooling 9 restoring libraries 76 rm command 149 RMVLNK 144 RNM 144 RPG 18 T S S30 109 SalesOrder subsystem dependencies 11 SAV 144 scripts 150 secure.connect 1, 73 SecureWay 96 security services 9 SecurityManager.
stateful connection 122 supplier ID 92 System21 data setup 87 user ID 92 user profile 87 user profiles 87 verbose garbage collection 126 viewing the server jobs 112 W WebSphere 8 errors on starting the client 54 errors when running the client 54 manual configuration 57 node name 54 WebSphere Application Server Advanced Edition 8 WebSphere MQ 12 WebSphere Resource Analyzer 123 Windows Explorer 140 word processors 142 Wordpad 142 Work Management Trigger Handler 89 write authority 89 WRKDTAARA QEJB/SF* 156 WR
168 Geac System21 commerce.
Geac System21 commerce.connect: Implementation on the IBM ~ iSeries Server (0.2”spine) 0.17”<->0.
Back cover ® Geac System21 commerce.connect Implementation on the IBM Gain useful insights through the product overview Follow the step-by-step guide to install commerce.connect Learn helpful usage and performance tips and techniques iSeries Server This IBM Redbook introduces the new Geac commerce platform .connect applications – the call.connect and vendor.connect applications. These applications extend and enhance the capabilities of Geac System21 into the intranet and Internet.