IBM®
Skip to main content
    Country/region [select]      Terms of use
 
 
      
     Home      Products      Services & solutions      Support & downloads      My account     
 
developerWorks
eServer
Information Mgmt
Lotus
Rational
Tivoli
WebSphere
New to WebSphere
Products
How to buy
Downloads
Technical library
Training
Support
Services
Forums & community
News
Workplace
Architecture
Autonomic computing
Grid computing
Java™ technology
Linux
Open source
Power Architecture™
SOA and Web services
Web architecture
Wireless technology
XML
Feedback

[an error occurred while processing this directive]
 

Frequently asked questions about WebSphere 4.0

Q: What is the content of J2EE EAR, WAR, and JAR files?

A: J2EE defines that all the EJB classes should be packaged in a JAR file. All the web components (JSPs, static pages, Servlets, gifs) should be packaged in a WAR file. All the classes for the Application Client should be packaged in a JAR file. EAR file will contain all the JARs and WARs belonging to the Application. It is important to note that each JAR, WAR, and EAR will contain a Deployment Descriptor. The Deployment Descriptor is an XML based file.

Q: What is the difference between AEs and AEd?

A: AEs is WebSphere, Advanced Edition - Single Server Option and AEd is WebSphere, Advanced Edition - Developer Only Option. AEs and AEd are the same code base. The difference is that AEs is licensed for production while AEd is not licensed for production.

Q: What are the roles of the internal/embedded HTTP server?

A: The internal HTTP server serves two purposes:

  1. It allows a programmer to test code running on the application server without installing an external HTTP server.
  2. It lets the plug-in communicate with the application server via HTTP rather than OSE.

The built-in HTTP server should not be accessed directly by end-users in production mode because it lacks some of the features that the external HTTP servers provide, like caching.

Q: Does the Admin Services for AEs run in a separate JVM?

A: No, the Admin Services for AEs does not run in a separate JVM. AEs is the WebSphere Advanced-Single Server option. AEs houses both the administrative server and the application server in the same Java Virtual Machine (JVM).

Q: With which version of HTTP are we compliant?

A: We are HTTP 1.1 compliant.

Q: Will the Silent Install run on UNIX systems without any tools like Motif or/and GUI tools?

A: Yes.

Q: Are EJBDeploy and SEAppInstall new tools for WebSphere 4.0?

A: EJBDeploy has always been there. What's new for WebSphere 4.0 is that we have shifted it to a command line tool that will allow you to execute the deploy tool from the command line. Whereas, before you could only execute the deploy tool from Visual Age for Java or the Admin GUI. The SEAppInstall is a new tool for WebSphere 4.0. It only applies to AEs and AEd. It is essentially a command line application installation tool.

Q: Where are the "where" clauses stored for the EJB?

A: "Where" clauses are configured in the Application Assembly Tool (AAT) as a method extension for the EJB. They are stored in the extensions file for the EJB.

Q: What is the policy for Work Load Management and stateful session beans?

A: The behavior of stateful session beans in 4.0 will be the same as the behavior in WebSphere 3.x. Stateful session beans can be modeled and cloned. However, you will not get the workload management of these beans. This is due to the fact that a stateful session bean is associated with a specific client. In most cases, Work Load Management of these EJBs actually results in worse performance, rather than better, as you significantly increase the amount of cross-process, and possibly cross-machine calls required.

Q: How do you specify a remote EJB on another Application Server?

A: If the EJB is on another Application Server within the same domain, there is no special action required. Because of WebSphere's distributed name space, a JNDI lookup for an EJB to any admin server will return the correct home as long as the EJB exists anywhere in that domain.

If the EJB is in another domain, then do as follows:
In the code where you do the EJB lookup, set the Context.PROVIDER_URL as follows:

Hashtable env = new Hashtable();

env.put(Context.PROVIDER_URL, "iiop://EJBHost");

Context context = new InitialContext(env);

where EJBHost is the host where the called EJB resides. The default value of Context.PROVIDER_URL is localhost. You can also choose to use some other naming service by setting the Context.INITIAL_CONTEXT_FACTORY.

Q: Provide some information about connection pooling, such as stale connections.

A: Stale connections are those connections which for some reason can no longer be used. This can happen, for example, if the database server is momentarily shut down or if the network is experiencing problems. In all of these cases, the connections are no longer usable by the application and the connection pool needs to be flushed and rebuilt. This type of support was added in WebSphere 3.5.2, and is improved in WebSphere 4.0. More vendor-specific error codes have been added to the mapping that result in a StaleConnectionException. In addition, whenever a StaleConnectionException is thrown by WebSphere, the entire pool of connections will be destroyed.

Q: How are pre-compiled JSPs handled?

A: As an IBM enhancement to JSP support, IBM WebSphere Application Server provides a batch JSP compiler. Use this function to batch compile your JSP files and thereby enable faster responses to the initial client requests for the JSP files on your production Web server.

It is best to batch compile all of the JSP files associated with an application. Batch compiling saves system resources and provides security on the application server by specifying if and/or when the server is to check for a class file or recompile a JSP file. Unless you have configured the web application otherwise, the application server will monitor the compiled JSP file for changes, and will automatically recompile and reload the JSP file whenever the application server detects that the JSP file has changed.

Use the JSPBatchCompiler tool. It works for 4.0 AEs. To make it work for beta Advanced Edition code, make a copy of the bat file, and replace org.apache.jasper.compiler.ibmtools.BatchC with
org.apache.jasper.compiler.ibmtools.JspBatchCompiler.
usage: JspBatchCompiler -enterpriseApp -webModule [-filename] [-keepgenerated]

Note that the enterprise name refers to the name of the installed application, and the web module name refers to the web module for that enterprise application. InfoCenter has more detail on this tool.

Q: Can you specify CLASSPATH on EJB?

A: Yes, "classpath" can be specified in the Application Assembly Tool (AAT) at each EJB module level.

Q: Can you specify CLASSPATH at the application Level?

A: No. The specific classpath is specified for each module (EJB, Web, Client) at the module level.

Q: In AEs, where are the bindings stored? Are the bindings stored in server-cfg.xml after installation of the EAR file?

A: In AEs, the bindings are stored in the xmi files for each module and EAR. These xmi files are named ibm-type-bnd.xmi where "type" is the type of module. For example, the EJB bindings are stored in a file named ibm-ejb-bnd.xmi in the EJB JAR. After installation, the bindings do not go into server-cfg.xml. They remain in the xmi files.

Q: In the Advanced Edition, are the bindings stored in the admin repository after installation of the EAR file? If changes are made to the bindings during installation, where do these changes get stored?

A: Before installation of the EAR file, the bindings are stored in the ibm-type-bnd.xmi file in the EAR. When the EAR file is installed in the Advanced Edition, the bindings will be stored in the Admin Repository. Any changes that are made to the bindings during installation of the EAR will be stored only in the Admin Repository. These changes will not be reflected in the .xmi files.

Q: Does migration store custom parts in admin.config?

A: Any information stored in WebSphere, Version 3.5 flat files such as admin.config and bootstrap.properties is saved in the backup directory by WASPreUpgrade(), but is not migrated to the Version 4.0 installation. Any customization to these files must be done manually to the Version 4.0 files.

Q: How does the migration tool know which application server to migrate?

A: WASPreUpgrade() does a full XMLConfig export of the WebSphere Application Server database, but only migrates the applications for the local node being upgraded.

Q: With Dynamic Caching, is a HTTP_POST cacheable? What might result?

A: POST along with GET requests can also be cached. Since, inside a servlet, a POST parameter would be obtained with HttpServletRequest.getParameter(), POST variables are defined in servletcache.xml with the "parameter" tag.

Q: Which version of SecureWay Directory ships with the Advanced Edition?

A: Secure Way Directory 3.2.6.

Q: When cloning an application server, must the original application server become a clone?

A: Yes. The beta code allows the option to make the original application server a clone, but the GA will not have this option. In the GA code, there will be added functionality of copying and moving enterprise applications between application servers in the same node, thus making it easier to recreate the original application server. Additionally, separation of application data and configuration data makes recreation of original application server easy.

Q: Can two Web modules have the same context root? (Does AAT force a restriction that two Web modules cannot have the same context root?)

A: AAT cannot have a check for Web modules with the same context root because there is nothing that says those two modules won't be deployed into different WebSphere domains or different virtual hosts on the same domain. However, WebSphere itself should not allow two Web modules to be installed on the same virtual host with the same context root. The beta code does not have checks for duplicate context root within the same virtual machine. However, the GA code will have these checks.

Q: What ships in the Advanced Edition CD?

A: Application Server CD (one CD per platform - NT/2000, AIX, SUN, HP, and Linux):

  • Advanced Edition 4.0 Install Image ( Advanced Edition 4.0, IHS v1.3.19, JDK 1.3, GSKIT 5.0, Merant's Sequelink 5.1, Starter InfoCenter/help files).
  • OLT /Debugger 9.1.4
  • J2EE Connectors Beta
  • Getting Started HTML
  • Getting Started PDF
  • License Information
  • Readme

Secure Way Directory & DB2 (one CD per platform - NT/AIX/SUN): Secure Way Directory 3.2.6

DB2 Enterprise Edition v7.2 CD2 (one platform per CD)

Client CD (NT/AIX/Sun)

  • J2EE Application Client Install
  • Java Application Thin Client Install We are shipping 128-Bit encryption only.

Merant Server (one CD with all the platforms)

Q: Why do you specify security roles for the EJB and for the enterprise application?

A: The idea is that EJBModule and WebModule application components may be developed independently by different programmers (from different companies) and they have to define some roles for authorization when developing these components. So the module developer adds these roles to the deployment descriptor for the module.

Later, the individual modules may be assembled into an overall application (potentially by an application assembler who had nothing to do with the original modules). At that point, the individual module roles have to be rationalized across the entire application - to resolve duplicate role names between modules. So we have what is known as "role push-up" from the module to application level.

Also, the application assembler may define new roles for the overall application. These role definitions are stored in the application deployment descriptor since it is the application assembler who creates them. We do not know what module (or modules) to associate them with, so they are left at the application level deployment descriptor.

Q: Clarify how EJB WLM works from the ORB plug-in.

A: Consider the case of an EJBClient, several EJB Clones, and an AdminServer.

The AdminServer keeps a list of which clones are available, and marks this list with an epoch number. The AdminServer is the parent process of the clones, and will be notified if a clone crashes. The adminserver also pings each clone periodically, and if the clone doesn't respond in a configured amount of time, the AdminServer assumes the clone is down. Each time a clone becomes available or unavailable, the AdminServer updates its list and a new epoch number is generated. This list is then pushed to each of the clones, and any remote admin servers.

When the EJBClient does a JNDI lookup for the EJB, the AdminServer returns the home interface. This contains a list of the available EJB clones along with an epoch number. When the client calls ejbcreate, a finder method, etc. the ORB chooses one of the clones from the list and routes the request accordingly, passing the epoch number with the request.

If one of the clones fails, the next ejbcreate, finder, etc. request will occur in one of two ways:

  • The request will be routed to one of the available clones. This clone will have the new list from the AdminServer, and will detect that the epoch number from the client does not match the one it is using. The clone will handle the request, and also pass the EJBClient's ORB a new list with the new epoch number.

  • The request will be routed to the clone that failed. If the machine is still available, but the clone is not, the connection will be refused, and the ORB will transparently route the request to the next clone in its list. If the entire machine has failed, the ORB will wait a configured number of seconds (ORB request timeout), and then assume the clone has failed and route the request to the next clone on the list. If this clone is available, the request follows the process of situation 1. If this clone is not available, the ORB will route the request to the next clone in the list. If all of the clones in the list are unavailable, the client's ORB will request a new list from the admin server. NOTE: this is the only time the client will return to the adminserver after the JNDI lookup.

Q: Will CICS and MQSeries move to J2C?

A: Yes for CICS. No for MQSeries (for now).

Q: Is OSE Remote deprecated or removed in V4.0?

A: The current situation is that OSE is removed in R4.0. It is not there and not supported. We will support 3.5 OSE and 4.0 HTTP running in the same server. However, you must use the HTTP transport to talk to a R4.0 server.

Q: Does WebSphere 4.0 support Oracle's 8.1.7 JDBC driver?

A: Yes, Oracle 8.1.7 will be supported in both the Advanced Edition and AEs.

Q: Does WebSphere 4.0 support the VisualAge for Java 3.5 Persistence Builder Objects?

A: No.

Q: What is the BeanCache?

A: Bean Cache is basically a performance feature where the bean is kept in memory so that it doesn't have to be loaded each time it is to be used.
Bean caching options are specified by the AAT => Entity Bean => IBM extension => Bean Cache.

Bean Cache --- Entity Beans

Activate at: Load at:
ONCE ACTIVATION = Commit Option A
ONCE TRANSACTION = Commit Option B
TRANSACTION TRANSACTION = Commit Option C

Bean Cache --- Stateful Session Beans

Activate at:
ONCE = Basically held in Active Cache until full or timed out
TRANSACTION = Activated/Passivated at transaction begin/commit

Q: Is Session Affinity based on the source IP address??

A: It is based on a specific instance of a browser. So, if you have 2 browsers on the same client machine, each will have its own session.

Q: Does WebSphere 4.0 support Jetace?

A: No. Jetace is gone and has been superseded by the Application Assembly Tool.

Q: Does WebSphere 4.0 support JPDA?

A: Yes. This is a part of JDK1.3.

Q: If an application does not use EJB, how do you secure the methods of the Java Class?

A: Normally, one would call a Servlet, JSP, EJB or static resources being hosted in an Application Server. There is no direct call to any Java Class. Calls to a Java class could be via an EJB or Servlet. Hence, protection could be applied indirectly through the protection on the EJB or servlet.

Q: How do you recreate WAS database in DB2?

A: Drop the existing WAS database. (Use db2cmd or use DB2 Control Center.)

db2cmd
db2 drop db was

Create new database.

db2 create dB was
db2 update dB cfg for was using applheapsz 256

Change admin.config as follows:

install.initial.config=true
# Create AdminServer database tables
com.ibm.ejs.sm.adminServer.createTables=true

Q: How do you set DataSource for a CMP Entity Bean?

A: You can set the DataSource for the CMP entity bean at the entity bean level in AAT, or set a default DataSource for the entire EJB module. If a CMP entity bean does not have any DataSource specified, it will use the default DataSource. However, the DataSource name specified at the CMP Entity bean level overrides the default DataSource name. The DataSource name must be the JNDI name of the JDBC DataSource set in the admin console.

Q: Will CCF (Common Connector Framework) be replaced by J2C?

A: The original CCF was an IBM technology developed by the VisualAge for Java group, subsequently incorporated into Java standards. The J2EE Connector Specification (J2C), a Java specification request paper, is in final draft, and CCF will therefore disappear from view as it will actually be incorporated in the J2EE standard.

Q: Will Enterprise Edition include TX Series?

A: Yes.

Q: Does EE have a rules-engine independent of Business Rule Beans?

A: The only rule technology that is implemented in EE is the Business Rules Beans - which are not geared towards implementing a rule-based engine in the AI sense (inferring new knowledge from a set of rules). BRBs are a way to externalize validation or "derivation" (calculation) algorithms, in a way that makes it easier for you to change the behavior of an application (administration versus programming).

Q: If customer wishes to use MS SQL for application database, can they purchase Merant drivers from Merant and install into AEs?

A: Customer can purchase the drivers from Merant, install them and have them work with AEs. But IBM doesn't support this configuration.

Q: What does a remote machine need to run LaunchClient (that is, where is the JVM)?

A: There will be a WebSphere install for the client container. This install will put the JVM and any necessary WebSphere classes on the remote client machine.

Q: Can WAS 4.0 use another vendor's JNDI directory?

WebSphere can perform lookups in another vendor's JNDI directory. However, EJBs deployed in WebSphere will be registered in WebSphere's internal JNDI space, this is not configurable.

Q: Can XMLConfig manipulate Server Groups and Clones?

A: Yes

Q: What is the future of XMLConfig and WSCP as their functionality merges into more nearly identical capabilities?

A: XMLConfig and WSCP are designed to perform two separate tasks. XMLConfig is designed to make configuration changes, such as creating/modifying server groups. WSCP is designed for procedural operations such as start/stop of objects, and for scripting task. WSCP can call the XMLConfig tool.

Q: Will VisualAge for Java 4.0 have a WebSphere Test Environment (WTE) for WebSphere 4.0?

A: No, as the JDK in VisualAge for Java 4.0 is still at 1.2.2 SR9 , the WTE has not been sync to WAS 4.0. WAS AEd can be used to test applications before going into production.

Q: Can WebSphere use JNDI as a user registry for authentication?

A: Yes, as long as it is used through the pluggable user registry. You would have to implement the appropriate interfaces, as defined by the pluggable user registry support, and your implementation is free to get the authentication information from wherever it is appropriate, including JNDI.

Q: What does XMI stand for?

A: XML Metadata Interchange

Q: Is there going to be a Web Based Admin Console in the Advanced Edition version like in the AEs version?

A: There is no plan to provide a browser based Admin Console in the Advanced Edition. The Advanced Edition has other tools, command line XMLConfig and WSCP that complement the Admin Console.

Q: Is MQSeries shipped with the WebSphere, Advanced Edition 4.0?

A: No, MQSeries is not shipped with WebSphere, Advanced Edition, AEs, or AEd 4.0.

Q: What are the XML levels supported ( XERCES, XALAN)?

A: XML 4J 3.1.1 => Xerces 1.2.1
XSL 2.0 => Xalan 2.0.

Q: If you manually throw an exception in the EJB, does the Client receive this exception?

A: Yes. If using EJBs, then the exception is marshalled to the client in general.

Q: List the steps for Setting up Multi-node domain (for DB2)

A: Assumption: You have created the WAS database on one machine.

On the DB2 client machine (remote WebSphere node), do the following:
db2 catalog tcpip node <db2 node name> remote <remote-node> server db2cdb2

For example: db2 catalog tcpip node WSNode1 remote WSNode1.rchland.ibm.com server db2cdb2
db2cdb2 is the entry in \winnt\system32\drivers\etc\services file like: db2cdb2 50000/tcp

Or appropriate service name in the "services" file that listens to port 50000.
If you only have client DB2 installed on your client, you may need to enter the db2cdb2 entry in the services file.

You should see a new remote node in DB2 control center
db2 catalog dB <remote dB name> as <local alias name> at node <db2 node name>

For example: db2 catalog dB was as was2 at node WSNode1
You should see the remote was database in the remote node with alias as was2.

Changes in the admin.config file:

Change the name of database to the alias name (was2 in our example): com.ibm.ejs.sm.adminServer.dbdatabaseName=was2.
If you want to create the initial configuration, change the line to install.initial.config=true.
Modify the following line, com.ibm.ejs.sm.adminServer.createTables=false.
If you have it as "true," it will recreate the entire WAS repository tables. So, don't do it, unless you really want to.

Q: Is PMI (Performance Monitoring Infrastructure) supported in the Advanced Edition and AEs?

A: PMI is supported in the Advanced Edition. PMI is not supported in AEs.

Q: Is turning on PMI Instrumentation levels through a Java API supported?

A: Turning on PMI instrumentation levels is only supported through the Admin Console or the Resource Analyzer. Turning on the instrumentation levels using a Java API is not supported.

Q: Is it possible to set PMI instrumentation levels at the method level for EJBs and servlets?

A: The instrumentation level can be set for the EJB methods. For servlets, the instrumentation level can be set only at the servlet level. It cannot be set for the methods called by the servlet.

    About IBM Privacy Contact