[Design of Clustering on JBoss (Clusters/JBoss)] - JBPAPP-863 -- FC blocks during slow failure detection
by bstansberry@jboss.com
Discussion of http://jira.jboss.com/jira/browse/JBPAPP-863 .
Removing FC is not a general purpose option as it is highly likely that will lead to OOM problems. Removing it in a 2 node TCP-based cluster like this test uses is OK, as FC serves no purpose in such a setup. See "Why is FC needed on top of TCP?" section at http://wiki.jboss.org/wiki/JGroupsFC . But I don't think the purpose of these tests is to test a specialized config, so don't think we should do it.
To an extent this result is showing a configuration tradeoff in the config of the FD protocol. The default config we ship with has this:
| <FD timeout="10000" max_tries="5" down_thread="false" up_thread="false" shun="true"/>
| <VERIFY_SUSPECT timeout="1500" down_thread="false" up_thread="false"/>
|
The total time it takes to detect a failure and remove a dead member is (FD.timeout * FD.max_tries) + VERIFY_SUSPECT.timeout = 51500 ms. That is, unless FD_SOCK detects the fairly immediately, which it doesn't in this pull-the-plug scenario.
51.5 secs is a long time. Pretty much your "cca 1 minute after other node unplugging." During that time, FC will block waiting for credits from the unreachable node (once it runs out of credits). Once the unreachable peer is removed from the group, FC will unblock.
We have a high timeout to prevent false suspicions when nodes don't reply to heartbeats due to temporary CPU spikes, long GC pauses etc. Perhaps 51500 ms is excessive. Let's discuss this with the group on Monday's clustering conf call. Users can always reduce this config to some lower value > X if they feel any extended CPU spikes or GC pauses will not exceed X. I wouldn't recommend less than 30 seconds or so. Used to be 15 and we were constantly hearing about false suspicion issues.
That's the core issue. Now a side issue:
The fact that one thread is trying to lock the session while another is trying to replicate it proves that there are multiple requests for the session. Those requests stack up and will put a very high replication load on the system. Question is why multiple requests are occuring. I want to understand this. Some possibilities:
1) Test servlet is flushing the response (i.e not waiting for JBossWeb to do it after the the replication), test client is reading the response, considering it completed and making another request. Dominik, is this possible?
2) Test client waits X seconds for a response; if doesn't get one retries the request. Analogous to user getting impatient and hitting refresh button. If this is what is happening, need to know what X is and decide how reasonable that is; perhaps make it a random value inside a range (i.e. 100% of user don't hit refresh after 10 secs).
3) mod_jk is itself retrying the request, either on same node or as an attempted failover (looks like same node). Do you have worker.xxx.reply_timeout configured in workers.properties?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4159385#4159385
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4159385
17 years, 9 months
[Design of JBoss Web Services] - Re: JBMETA-44, ws annotation processing for references
by alessio.soldano@jboss.com
"alex.loubyansky(a)jboss.com" wrote : I've modified the WebServiceRefHandler to add injectors to the container. http://jira.jboss.com/jira/browse/EJBTHREE-1424 So, the JBCTS-797 now passes with the latest not yet released EJB3 and metadata versions.
|
| Another issue in the ClientContainer was that the AnnotatedElement was lost during serialization. So, sref.getInjectionTargets() had to be used instead.
As far as I understand, the commit you're talking about is http://fisheye.jboss.com/browse/JBossAS/projects/ejb3/trunk/core/src/main....
Is this included in the current 0.1.5-SNAPSHOT? I'm asking because I've updated my local environment to use it and my jbossws testcases fail with this:
| ...
| Caused by: java.lang.IllegalStateException: Annotated element for 'env/Service1' is niether Method nor Field: class org.jboss.test.ws.jaxws.webserviceref.TestEndpointClientTwo
| at org.jboss.injection.WebServiceRefHandler.addInjector(WebServiceRefHandler.java:113)
| at org.jboss.injection.WebServiceRefHandler.loadXml(WebServiceRefHandler.java:82)
| at org.jboss.ejb3.clientmodule.ClientENCInjectionContainer.processMetaData(ClientENCInjectionContainer.java:319)
| at org.jboss.ejb3.clientmodule.ClientENCInjectionContainer.<init>(ClientENCInjectionContainer.java:164)
| at org.jboss.ejb3.deployers.Ejb3ClientDeployer.deploy(Ejb3ClientDeployer.java:122)
|
I guess that's because the service class is something like this:
| @WebServiceRef(name = "Service1")
| // Test multiple on type
| @WebServiceRefs( { @WebServiceRef(name = "Service2"), @WebServiceRef(name = "Port1", type = TestEndpoint.class) })
| public class TestEndpointClientTwo
| {
| // provide logging
| private static final Logger log = Logger.getLogger(org.jboss.test.ws.jaxws.webserviceref.TestEndpointClientTwo.class);
|
| // Test on field
| @WebServiceRef(name = "Service3")
| static Service service3;
| ...
|
i.e. it has @WebServiceRef on the class too.
Hope this helps
Thanks
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4159373#4159373
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4159373
17 years, 9 months
[Design of JBoss Web Services] - Nested EJB3 modules deployment process and JBossWS.
by slawomir.wojtasiak
Hello all,
I hope I have chosen right forum ;)
I'm using my own dedicated deployer which is responsible for deploying some kind or archives that are similar to plain EARs. This deployer is derived from SubDeployerSupport so I have got support for nested deployments out of the box. Deployed archives are not the EARs so nested EJB3 modules are not deployed as a part of EAR archive. There is a problem with the InvocationHandlerEJB3 which treats all EJB3 components from modules which have their parent module set (In DeploymentInfo), as a part of EAR archive and tries to add "ear" key to their ObjectNames while this key shouldn't be set because these modules are not deployed as a part of EAR but as a part of other archive (They are registered the same way as standalone EJB3 modules are.). ObjectName prepared this way is obviously not known so "Cannot find service endpoint target..." exception is thrown.
I would like to point here that I use JBoss 4.2.2.GA and jbossws-native 3.0.1 (but jbossws-native has nothing to do with this problem.)
It is shown in the code below:
| // org.jboss.wsf.container.jboss42.InvocationHandlerEJB3
|
| public void init(Endpoint ep)
| {
| String ejbName = ep.getShortName();
| ArchiveDeployment dep = (ArchiveDeployment)ep.getService().getDeployment();
| String nameStr = "jboss.j2ee:name=" + ejbName + ",service=EJB3,jar=" + dep.getSimpleName();
| if (dep.getParent() != null) <---- Mentioned condition (It is not DeploymentInfo but this object is based on it)
| {
| nameStr += ",ear=" + dep.getParent().getSimpleName();
| }
|
| objectName = ObjectNameFactory.create(nameStr.toString());
|
| Dispatcher dispatcher = Dispatcher.singleton;
| if (dispatcher.getRegistered(objectName.getCanonicalName()) == null)
| throw new WebServiceException("Cannot find service endpoint target: " + objectName);
| }
|
In my opinion this condition is not enough because not every parent of EJB3 module has to be an EAR archive. See "org.jboss.ejb3.Ejb3Module" constructor and method "getDeploymentQualifiedName" of "org.jboss.ejb3.EJBContainer" to confirm it. This method returns exactly what is needed in earlier mentioned "init" method of "org.jboss.wsf.container.jboss42.InvocationHandlerEJB3".
| // org.jboss.ejb3.EJBContainer
|
| public String getDeploymentQualifiedName()
| {
| DeploymentScope ear = deployment.getEar(); <--- DeploymentScope is a determinant of EAR.
| DeploymentUnit unit = deployment.getDeploymentUnit();
| StringBuilder sb = new StringBuilder();
| if (ear != null)
| {
| sb.append("ear=");
| sb.append(ear.getShortName());
| sb.append(",");
| }
| sb.append("jar=");
| sb.append(unit.getShortName());
| sb.append(",name=");
| sb.append(getEjbName());
| return sb.toString();
| }
|
EJB3 module is treated as a part of EAR only if Ejb3Deployment (deployment field in this case) returns an instance of DeploymentScope which is prepared by Ejb3Module for parent EAR archive. This object is available ONLY if parent archive name ends with .ear suffix or .ear/ in case of directory deployments.
| // org.jboss.ejb3.Ejb3Module
|
| public Ejb3Module(DeploymentInfo di)
| {
| DeploymentScope deploymentScope = null;
| if (di.parent != null)
| {
| if (di.parent.shortName.endsWith(".ear") || di.parent.shortName.endsWith(".ear/"))
| {
| synchronized(di.parent.context)
| {
| deploymentScope = (DeploymentScope)di.parent.context.get("EJB3_EAR_METADATA");
| if (deploymentScope == null)
| {
| deploymentScope = new JmxDeploymentScopeImpl(di.parent.shortName);
| di.parent.context.put("EJB3_EAR_METADATA", deploymentScope);
| }
| }
| }
| }
| deployment = new Ejb3JmxDeployment(di, deploymentScope);
| if (deploymentScope != null)
| {
| deploymentScope.register(deployment);
| }
| this.di = di;
| }
|
Looking at this code one might conclude that DeploymentScope stored in parent module context indicates EAR archive, not the existence of the parent deployment itself.
------
I'm pretty sure that it was not intended to work this way and that it is a bug, but I would like to see your opinions before I report a bug.
I had to prepare quick workaround, there are modified methods:
Class: org.jboss.wsf.container.jboss42.JAXWSDeployerHookEJB3
Archive: jbossws-jboss42.jar from JBoss AS 4.2.2.GA
Method: createDeployment.
| @Override
| public Deployment createDeployment(DeploymentInfo di)
| {
| ArchiveDeployment dep = newDeployment(di);
| dep.setRootFile(new URLLoaderAdapter(di.localUrl));
| dep.setRuntimeClassLoader(di.ucl);
| dep.setType(getDeploymentType());
|
| Service service = dep.getService();
|
| Ejb3ModuleMBean ejb3Module = EJBArchiveMetaDataAdapterEJB3.getEJB3Module(di.deployedObject);
| for (Object manager : ejb3Module.getContainers().values())
| {
| if (manager instanceof EJBContainer)
| {
| EJBContainer container = (EJBContainer)manager;
| if (isWebServiceBean(container))
| {
| String ejbName = container.getEjbName();
| String epBean = container.getBeanClassName();
|
| // Get qualified name of the EJB3 module. It is possible to get it directly from
| // EJBContainer in its original form so I don't see why don't use it. Are there any
| // contra arguments?
| if( dep instanceof AbstractExtensible ) {
| AbstractExtensible extensible = (AbstractExtensible)dep;
| if( !extensible.getProperties().contains( "EJB3_QUALIFIED_NAME" ) ) {
| String deploymentQualifiedName = Ejb3Module.BASE_EJB3_JMX_NAME + "," + container.getDeploymentQualifiedName();
| extensible.setProperty( "EJB3_QUALIFIED_NAME", deploymentQualifiedName );
| }
| }
|
| // Create the endpoint
| Endpoint ep = newEndpoint(epBean);
| ep.setShortName(ejbName);
| service.addEndpoint(ep);
| }
| }
| }
|
| return dep;
| }
|
Class: org.jboss.wsf.container.jboss42.InvocationHandlerEJB3
Archive: jbossws-jboss42.jar from JBoss AS 4.2.2.GA
Method: init.
| public void init(Endpoint ep)
| {
| String ejbName = ep.getShortName();
| ArchiveDeployment dep = (ArchiveDeployment)ep.getService().getDeployment();
|
| // Try to get qualified name prepared earlier
| String nameStr = null;
| if( dep instanceof AbstractExtensible ) {
| nameStr = (String)((AbstractExtensible)dep).getProperty( "EJB3_QUALIFIED_NAME" );
| }
|
| if ( nameStr == null ) {
| nameStr = "jboss.j2ee:name=" + ejbName + ",service=EJB3,jar=" + dep.getSimpleName();
| if (dep.getParent() != null)
| {
| nameStr += ",ear=" + dep.getParent().getSimpleName();
| }
| }
|
| objectName = ObjectNameFactory.create(nameStr.toString());
|
| Dispatcher dispatcher = Dispatcher.singleton;
| if (dispatcher.getRegistered(objectName.getCanonicalName()) == null)
| throw new WebServiceException("Cannot find service endpoint target: " + objectName);
| }
|
Regards,
SÃÂ
ÃÂawomir Wojtasiak
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4159368#4159368
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4159368
17 years, 9 months
[Design of JBoss Media (EMB)] - JET FUEL $100.00 PER BARREL
by HRH2
I AM A FULL SERVICE FUEL DEALER/EXPORTER IN THE UNITED STATES. I CARRY JET A; JET A1; AVGAS; 100LL; HELICOPTER FUEL; AVIATION FUEL. I SELL FUEL FROM 24 REFINERIES COAST TO COAST THAT ARE AFFILIATES. I APPRECIATE THE OPPORTUNITY TO BID ON YOUR FUEL REQUIREMENTS. PLEASE INCLUDE THE EXACT DESTINATION AND QUANTITY IN YOUR REQUEST ON COMPANY LETTERHEAD. PLEASE ALLOW A 14 DAY LEAD WAY ON FUEL DELIVERY. SO, IF YOU REQUIRE FUEL, I LOOK FORWARD TO EXCEEDING YOUR EXPECTATIONS IN MY FUEL PRODUCTS.
TYPICAL FULL SALES OFFER
I, Harrison Rains Hanover, as the SELLER, with full authority and legal responsibility, under penalty of perjury, hereby confirm that I am ready willing and able to sell the commodity: JET A1 under the following terms and conditions below.
PRODUCT: JET A1
ORIGIN: USA
SPECIFICATIONS: SPECIFICATION DEPENDS UPON DELIVERY OPTION.
QUANTITY: ONE MILLION BARRELS (1,000,000 BARRELS) AND GREATER.
CONTRACT TERM: SPOT
DELIVERY: BUYER'S CHOICE SUBJECT TO SELLER APPROVAL.
PRICE: $100.00USD PER BARREL
PAYMENT: CASHIER CHEQUE AT CLOSING OR TT IN ADVANCE OF CLOSING.
WARRANTY: PRODUCER WARRANTS QUALITY. SGS INSPECTION AVAILABLE AT BUYER'S COST AFTER CLOSING AND BEFORE DELIVERY.
PROCEDURES
1. BUYER issues LETTER defining quantity required and desired price. The letter will also disclose Q88 information if buyer is taking delivery via ship. Recent safety inspection, less than 90 days old, must accompany Q88. If delivery is to be made via pipeline, the letter will disclose the exact physical address of the tank storage facility; a contact person; telephone number; tank numbers; and a recent ANSI safety inspection report less than 90 days.
2. SELLER issues sales contract based upon information provided by BUYER in the LETTER.
3. The BUYER will establish its own separate account at FRONTIER BANK, MAIN BRANCH, in Everett, Washington and deposit the full amount of the purchase.
4. The SELLER and BUYER shall meet in a TTM at the FRONTIER BANK. At the TTM the SELLER and BUYER shall sign the SALES CONTRACT.
5. After the SALES CONTRACT is signed the BUYER shall draw a cashiers cheque from its account at FRONTIER BANK paid to the order of SELLER.
6. SELLER and BUYER exchange POP and cashier cheque. POP is the contract between the SELLER and the major oil company refining and supplying the JET A1 for this transaction. The POP will be redacted as to the supply price.
7. Deliveries begin as per the terms of the contract
YOU MAY CONTACT ME AT osec.sugar(a)gmail.com.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4159352#4159352
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4159352
17 years, 9 months
[Design of Kosmos] - JET FUEL $100.00 PER BARREL
by HRH2
I AM A FULL SERVICE FUEL DEALER/EXPORTER IN THE UNITED STATES. I CARRY JET A; JET A1; AVGAS; 100LL; HELICOPTER FUEL; AVIATION FUEL. I SELL FUEL FROM 24 REFINERIES COAST TO COAST THAT ARE AFFILIATES. I APPRECIATE THE OPPORTUNITY TO BID ON YOUR FUEL REQUIREMENTS. PLEASE INCLUDE THE EXACT DESTINATION AND QUANTITY IN YOUR REQUEST ON COMPANY LETTERHEAD. PLEASE ALLOW A 14 DAY LEAD WAY ON FUEL DELIVERY. SO, IF YOU REQUIRE FUEL, I LOOK FORWARD TO EXCEEDING YOUR EXPECTATIONS IN MY FUEL PRODUCTS.
TYPICAL FULL SALES OFFER
I, Harrison Rains Hanover, as the SELLER, with full authority and legal responsibility, under penalty of perjury, hereby confirm that I am ready willing and able to sell the commodity: JET A1 under the following terms and conditions below.
PRODUCT: JET A1
ORIGIN: USA
SPECIFICATIONS: SPECIFICATION DEPENDS UPON DELIVERY OPTION.
QUANTITY: ONE MILLION BARRELS (1,000,000 BARRELS) AND GREATER.
CONTRACT TERM: SPOT
DELIVERY: BUYER'S CHOICE SUBJECT TO SELLER APPROVAL.
PRICE: $100.00USD PER BARREL
PAYMENT: CASHIER CHEQUE AT CLOSING OR TT IN ADVANCE OF CLOSING.
WARRANTY: PRODUCER WARRANTS QUALITY. SGS INSPECTION AVAILABLE AT BUYER'S COST AFTER CLOSING AND BEFORE DELIVERY.
PROCEDURES
1. BUYER issues LETTER defining quantity required and desired price. The letter will also disclose Q88 information if buyer is taking delivery via ship. Recent safety inspection, less than 90 days old, must accompany Q88. If delivery is to be made via pipeline, the letter will disclose the exact physical address of the tank storage facility; a contact person; telephone number; tank numbers; and a recent ANSI safety inspection report less than 90 days.
2. SELLER issues sales contract based upon information provided by BUYER in the LETTER.
3. The BUYER will establish its own separate account at FRONTIER BANK, MAIN BRANCH, in Everett, Washington and deposit the full amount of the purchase.
4. The SELLER and BUYER shall meet in a TTM at the FRONTIER BANK. At the TTM the SELLER and BUYER shall sign the SALES CONTRACT.
5. After the SALES CONTRACT is signed the BUYER shall draw a cashiers cheque from its account at FRONTIER BANK paid to the order of SELLER.
6. SELLER and BUYER exchange POP and cashier cheque. POP is the contract between the SELLER and the major oil company refining and supplying the JET A1 for this transaction. The POP will be redacted as to the supply price.
7. Deliveries begin as per the terms of the contract
YOU MAY CONTACT ME AT osec.sugar(a)gmail.com.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4159349#4159349
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4159349
17 years, 9 months
[Design of JBoss Reporting] - JET FUEL $100.00 PER BARREL
by HRH2
I AM A FULL SERVICE FUEL DEALER/EXPORTER IN THE UNITED STATES. I CARRY JET A; JET A1; AVGAS; 100LL; HELICOPTER FUEL; AVIATION FUEL. I SELL FUEL FROM 24 REFINERIES COAST TO COAST THAT ARE AFFILIATES. I APPRECIATE THE OPPORTUNITY TO BID ON YOUR FUEL REQUIREMENTS. PLEASE INCLUDE THE EXACT DESTINATION AND QUANTITY IN YOUR REQUEST ON COMPANY LETTERHEAD. PLEASE ALLOW A 14 DAY LEAD WAY ON FUEL DELIVERY. SO, IF YOU REQUIRE FUEL, I LOOK FORWARD TO EXCEEDING YOUR EXPECTATIONS IN MY FUEL PRODUCTS.
TYPICAL FULL SALES OFFER
I, Harrison Rains Hanover, as the SELLER, with full authority and legal responsibility, under penalty of perjury, hereby confirm that I am ready willing and able to sell the commodity: JET A1 under the following terms and conditions below.
PRODUCT: JET A1
ORIGIN: USA
SPECIFICATIONS: SPECIFICATION DEPENDS UPON DELIVERY OPTION.
QUANTITY: ONE MILLION BARRELS (1,000,000 BARRELS) AND GREATER.
CONTRACT TERM: SPOT
DELIVERY: BUYER'S CHOICE SUBJECT TO SELLER APPROVAL.
PRICE: $100.00USD PER BARREL
PAYMENT: CASHIER CHEQUE AT CLOSING OR TT IN ADVANCE OF CLOSING.
WARRANTY: PRODUCER WARRANTS QUALITY. SGS INSPECTION AVAILABLE AT BUYER'S COST AFTER CLOSING AND BEFORE DELIVERY.
PROCEDURES
1. BUYER issues LETTER defining quantity required and desired price. The letter will also disclose Q88 information if buyer is taking delivery via ship. Recent safety inspection, less than 90 days old, must accompany Q88. If delivery is to be made via pipeline, the letter will disclose the exact physical address of the tank storage facility; a contact person; telephone number; tank numbers; and a recent ANSI safety inspection report less than 90 days.
2. SELLER issues sales contract based upon information provided by BUYER in the LETTER.
3. The BUYER will establish its own separate account at FRONTIER BANK, MAIN BRANCH, in Everett, Washington and deposit the full amount of the purchase.
4. The SELLER and BUYER shall meet in a TTM at the FRONTIER BANK. At the TTM the SELLER and BUYER shall sign the SALES CONTRACT.
5. After the SALES CONTRACT is signed the BUYER shall draw a cashiers cheque from its account at FRONTIER BANK paid to the order of SELLER.
6. SELLER and BUYER exchange POP and cashier cheque. POP is the contract between the SELLER and the major oil company refining and supplying the JET A1 for this transaction. The POP will be redacted as to the supply price.
7. Deliveries begin as per the terms of the contract
YOU MAY CONTACT ME AT osec.sugar(a)gmail.com.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4159347#4159347
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4159347
17 years, 9 months