|
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:
- It allows a programmer to test code running on the application server without
installing an external HTTP server.
- 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.
|