-
1. Cluster Member Starvation
wwright Aug 24, 2004 2:59 PM (in response to wwright)I am experiencing a situation where some members of a cluster are not getting any requests. The following is my configuration.
OS: Solaris
Java version: 1.3
JBoss version: jboss_3.0.1RC1-tomcat_4.0.4
I have 2 partitions. One called ProdEJB has only SFSB and SLSB clustering turned on. The other called ProdJNDI has only JNDI clustering turned on. At present all servers live on the same physical computer. Each server participating in the ProdJNDI partition is running HA-JNDI on a different port.
5 or 6 servers participate in the ProdEJB partition. All of the 5 or 6 servers that participate in the ProdEJB partition also participate in the ProdJNDI partition. We refer to these servers as EJB servers.
There is one other server which runs servlets only and no EJBs that participates in the ProdJNDI partition. The servlets in this server use ejb-ref declarations to talk to EJBs in the ProdEJB partition. Each ejb-ref points to a JNDI name in HA-JNDI on this server. We refer to this server as the web server.
So you can see that for each EJB looked up by the web server the lookup will talk to HA-JNDI running in the web server. HA-JNDI will not find the EJB name in the global namespace or the local namespace so it will begin asking the other (EJB) servers if they have the name in their local namespace. The first EJB server it asks will have the name and will return a clustered home interface. The web server now has a reference to the clustered home of an EJB. Calls to the create methods in the home interface should be made round-robin on the 5 or 6 EJB servers. For SLSB calls to any remote method should be made round-robin on the 5 or 6 EJB servers.
One final note is that the web server holds on to the home reference in a Service Locator object rather than looking it up each time it is needed.
With this setup we are seeing the following behavior.
1. With 4 or less servers every server receives calls made to create methods in the home or business methods in the remote in a more or less fair manner. Over time all servers get roughly the same number of requests.
2. With 5 servers 1 of the servers gets starved. In other words it never gets any requests. In addition to this some other server gets about twice as many requests as the other servers. The remaining 3 servers get roughly the same number of requests.
3. With 6 servers 2 of the servers get starved and some other server gets about twice as many requests as the other servers.
The particular servers that get starved seems fairly random but somewhat related to the order in which I start the servers.
I realize that this is a somewhat more complicated clustering situation than most people are using, but it is reasonable, and suits our needs. It enables us to have 1 (and later more) servers handling servlets and talking to a cluster of EJB servers. This will perform well in our environment.
Has anyone else seen problems like this with the Round Robin algorithms? Any ideas? -
2. Re: Jboss-ide 1.3.0 Tutorial. Xdoclet not generating web.xm
wwright Aug 24, 2004 3:04 PM (in response to wwright)
That last piece is suppose to read > tried running ant from the command line I tried putting a echo statement in the target after the fileset parm but it failed -
3. Re: Jboss-ide 1.3.0 Tutorial. Xdoclet not generating web.xm
wwright Aug 24, 2004 3:06 PM (in response to wwright)
That last piece is suppose to read > tried running ant from the command line I tried putting a echo statement in the target after the fileset parm but it failed
echo message="includes=${includes}" -
4. Re: Jboss-ide 1.3.0 Tutorial. Xdoclet not generating web.xm
pilhuhn Aug 24, 2004 3:14 PM (in response to wwright)Xdoclet recognizes them if you have a webdoclet task.
See http://xdoclet.sourceforge.net/xdoclet/tags/web-tags.html
and
http://xdoclet.sourceforge.net/xdoclet/ant/xdoclet/modules/web/WebDocletTask.html -
5. Re: Jboss-ide 1.3.0 Tutorial. Xdoclet not generating web.xm
wwright Aug 24, 2004 3:19 PM (in response to wwright)Yes, I believe I do. using the Tutorial I entered a EJB doclet and a Web doclet.
The xdoclet-build.xml looks like this subst. < for < and /> for /)
(?xml version="1.0" encoding="UTF-8"?>
(project default="_generation_" name="XDoclet Generator">
(property file="xdoclet-build.properties"/)
(path id="xdoclet.classpath">
(pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/ejb-api.jar"/)
(pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/jca-api.jar"/)
(pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/jms-api.jar"/)
(pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/jsp-api.jar"/)
(pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/jta-api.jar"/)
(pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/servlet-api.jar"/)
(pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/sql-api.jar"/)
(pathelement location="bin"/)
(fileset dir="/c:/Apps/eclipse/plugins/org.jboss.ide.eclipse.xdoclet.core_1.3.30/">
(include name="*.jar"/)
(/fileset>
(/path>
(target depends="N400004,N4003CA" name="_generation_"/)
(target description="EJB" name="N400004">
(taskdef classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="xdoclet.classpath" name="ejbdoclet"/)
(ejbdoclet destDir="src" ejbSpec="2.0">
(fileset dir="src" includes="**/*Bean.java"/)
(deploymentdescriptor destDir="src/META-INF"/)
(jboss Version="3.0" destDir="src/META-INF"/)
(packageSubstitution packages="ejb" substituteWith="interfaces"/)
(remoteinterface/)
(homeinterface/)
(localhomeinterface/)
(localinterface/)
(/ejbdoclet>
(/target>
(target description="Web" name="N4003CA">
(taskdef classname="xdoclet.modules.web.WebDocletTask" classpathref="xdoclet.classpath" name="webdoclet"/)
(webdoclet destDir="src/WEB-INF">
(fileset dir="src" includes="**/*Servlet.java"/)
(deploymentdescriptor Servletspec="2.3"/)
(jbosswebxml Version="3.0"/)
(/webdoclet>
(/target>
(/project> -
6. Re: Jboss-ide 1.3.0 Tutorial. Xdoclet not generating web.xm
wwright Aug 24, 2004 3:37 PM (in response to wwright)
Link to the image of the Xdoclets.
[img]http://www.geocities.com/wwrightjuly4/EclipseJBoss-ide-properties.html?1093375806687[/img] -
7. Re: Jboss-ide 1.3.0 Tutorial. Xdoclet not generating web.xm
wwright Aug 24, 2004 3:49 PM (in response to wwright)The above is spitting out a web.xml skeleton document in the WEB-INF Directory. No entries etc.
http://www.geocities.com/wwrightjuly4/temporarypreviewfile.html?1093376593187, same as above message, with fileset image. -
8. Re: Jboss-ide 1.3.0 Tutorial. Xdoclet not generating web.xm
wwright Aug 24, 2004 3:54 PM (in response to wwright)Buildfile: C:\Data\myDev\workspace\Jboss-ide\xdoclet-build.xml
N400004:
[ejbdoclet] (XDocletMain.start 47 ) Running
[ejbdoclet] (XDocletMain.start 47 ) Running
[ejbdoclet] (XDocletMain.start 47 ) Running
[ejbdoclet] (XDocletMain.start 47 ) Running
[ejbdoclet] (XDocletMain.start 47 ) Running
[ejbdoclet] (XDocletMain.start 47 ) Running
N4003CA:
[webdoclet] (XDocletMain.start 47 ) Running
[webdoclet] Generating web.xml.
[webdoclet] (XDocletMain.start 47 ) Running
[webdoclet] (TemplateSubTask.engineStarted 794 ) Generating output 'jboss-web.xml' using template file 'jar:file:/C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.xdoclet.core_1.3.30/xdoclet-jboss-module-1.2.1.jar!/xdoclet/modules/jboss/web/resources/jboss_web_xml.xdt'.
_generation_:
BUILD SUCCESSFUL
Total time: 15 seconds -
9. Hi, I was just wondering if there are any status updates
wwright Aug 25, 2004 4:06 PM (in response to wwright)1
-
10. Re: Jboss-ide 1.3.0 Tutorial. Xdoclet not generating web.xm
pilhuhn Aug 25, 2004 4:41 PM (in response to wwright)This sound like you have a mismatch of the root of the fileset you are using and the package structure.
e.g. you have
fileset dir=srcs/com/acme/bla
include foo/*.java
but your package says com.acme.bla.foo
then there is a mismatch as the fileset sees a package of foo.
This is a flaw in xdoclet that it does not report this mismatch (but javac doesn't as well iirc). -
11. Re: Jboss-ide 1.3.0 Tutorial. Xdoclet not generating web.xm
wwright Aug 25, 2004 9:45 PM (in response to wwright)Thanks for the response. This is so strange, I have played with the xdoclet sample, it builds, updates web.xml. I have copied the jboss-ide 1.3 /src/ <tutorial> to the xdoclet samples/src/java dir effectively the fileset is ${samples.java.dir} includes **/*Servlet.java directory with no effect i have copied the xdoclet sample <test> dir to the jboss-ide/src directory and it builds and shows in the web.xml file but still no tutorial entries. --pilhuhn "mismatch of the root of the fileset" --- If I understand your point. I have examined the build file and the directory structure along with the package names. where ComputeServlet.java is in tutorial/web the the package is package tutorial.web; Where SimpleServlet.java is in test/web the package is package test.web; The above reside below <src> so using the below: code segment target below <webdoc>: filset dir=src includes=**/*Servlet.java The web.xml shows the SimpleServlet definition but the ComputeServlet is missing.
directory Structure: jboss-ide/src /tutorial /ejb, /interfaces, /web (add from xdoclet/samples) /test /web, /dao, etc. <path id="xdoc.class.path"> <pathelement location="C:/Apps/eclipse/plugins/org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30/lib/j2ee-1.3/ejb-api.jar"/> <fileset dir="${xdoc.lib.dir}"> <include name="*.jar"/> </fileset> <fileset dir="${xdoclet.root.dir}/samples/lib"> <include name="*.jar"/> </fileset> </path> <echo message=" xdoc.class.path = ${xdoc.class.path}"/> <target description="Web" name="webdoc"> <taskdef classname="xdoclet.modules.web.WebDocletTask" classpathref="xdoc.class.path" name="webdoclet"/> <webdoclet destDir="src/WEB-INF" force="true" verbose="true"> <fileset dir="src" includes="**/*Servlet.java"/> <deploymentdescriptor Servletspec="2.3"/> </webdoclet>
-
12. Re: Jboss-ide 1.3.0 Tutorial. Xdoclet not generating web.xm
wwright Aug 26, 2004 2:13 AM (in response to wwright)If I have a fileset Mismatch as described above I do not see it...
I believe I understand what you are saying about the file mismatch
////
e.g. you have
fileset dir=srcs/com/acme/bla
include foo/*.java
but your package says com.acme.bla.foo
///
the fileset above would match
package foo; but not package com.acme.bla.foo;
perhaps fileset dir=srcs includes="com/acme/bla/foo/*.java"
or
fileset dir=srcs incluldes="**/*.java"
would work.???right
Because of the way ant builds this and xdoclet processes the file.
The following is the last portion of the Debug log from
(ant -d -f xdoc-build.xml webdoc) command. The two servlets are
SimpleServlet, and ComputeServlet...It appears to find them but I can
not tell much about what processing was done.
The SimpleServlet gets written to the web.xml but ComputeServlet does not.
===================
Class xjavadoc.AbstractType loaded from ant loader (parentFirst)
Class xjavadoc.ParameterImpl loaded from ant loader (parentFirst)
Finding class xjavadoc.ReturnType
Loaded from C:\apps\jakarta\xdoclet-1.2.1\lib\xjavadoc-1.0.3.jar xjavadoc/ReturnType.class
Class xjavadoc.ReturnType loaded from ant loader (parentFirst)
Finding class test.web.SimpleServlet.VelocityServlet
Finding class test.web.VelocityServlet
Finding class java.lang.VelocityServlet
Class javax.naming.Context loaded from parent loader (parentFirst)
Class javax.naming.InitialContext loaded from parent loader (parentFirst)
Class javax.rmi.PortableRemoteObject loaded from parent loader (parentFirst)
Finding class javax.ejb.EJBObject
Loaded from C:\Apps\eclipse\plugins\org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30\lib\j2ee-1.3\ejb-api.jar javax/ejb/EJBObject.class
Class java.rmi.Remote loaded from parent loader (parentFirst)
Class javax.ejb.EJBObject loaded from ant loader (parentFirst)
Finding class javax.ejb.EJBHome
Loaded from C:\Apps\eclipse\plugins\org.jboss.ide.eclipse.jdt.j2ee.core_1.3.30\lib\j2ee-1.3\ejb-api.jar javax/ejb/EJBHome.class
Class javax.ejb.EJBHome loaded from ant loader (parentFirst)
Finding class tutorial.web.ComputeServlet.HttpServlet
Finding class tutorial.web.HttpServlet
Finding class java.lang.HttpServlet
Class java.io.BufferedReader loaded from parent loader (parentFirst)
Class java.util.TreeMap loaded from parent loader (parentFirst)
Couldn't load Resource filter-mappings.xml
Couldn't load Resource listeners.xml
Couldn't load Resource servlets.xml
Class sun.reflect.MethodAccessorImpl loaded from parent loader (parentFirst)
Couldn't load Resource web-sec-rolerefs-{0}.xml
Couldn't load Resource servlet-mappings.xml
Couldn't load Resource mime-mappings.xml
Couldn't load Resource welcomefiles.xml
Couldn't load Resource error-pages.xml
Couldn't load Resource taglibs.xml
Couldn't load Resource web-resource-env-refs.xml
Couldn't load Resource ejb-resourcerefs.xml
Couldn't load Resource ejb-resourcerefs-{0}.xml
Couldn't load Resource ejb-resourcerefs-{0}.xml
Couldn't load Resource web-security.xml
Couldn't load Resource web-sec-roles.xml
Couldn't load Resource web-env-entries.xml
Couldn't load Resource web-env-entries-{0}.xml
Couldn't load Resource web-env-entries-{0}.xml
Couldn't load Resource web-ejbrefs.xml
Couldn't load Resource web-ejbrefs-local.xml
BUILD SUCCESSFUL
Total time: 13 seconds -
13. Re: Jboss-ide 1.3.0 Tutorial. Xdoclet not generating web.xm
wwright Aug 26, 2004 4:49 PM (in response to wwright)Well, I have pulled my hair out and exhausted my ideas for getting
xdoclet to work with the 1.3.0 jboss-ide tutorial. I just using the merge
files, for now....
If anyone is interested here's the zip file my jboss-ide 1.3.0 tutorial directory
and post it on a url.
http://www.geocities.com/wwrightjuly4/EclipseJBoss-ide-properties.html?1093552899382
Thanks to pilhuhn for his suggestions...and time.