[Design of JBoss/Tomcat Integration] - Sun WebServer 7.0/jBoss 4.2.2 http connectors unresponsive
by gotthejack
We have a Sun Webserver 7.0 front end connecting with multiple jBoss 4.4.2 servers using http connector. Throughout the day we receive multiple offline errors from the Sun Webserver stating that one of the servers in unresponsive. During these times the number of connections are under 30 and the jBoss servers are not overburdened.
>From our Sun Webserver logs:
[24/Jul/2008:07:17:27] fine (17169): for host 67.99.63.186 trying to POST /matter/billing/LegalBillSubmit.serv, attempting to connect to 10.10.15.21:8080
[24/Jul/2008:07:21:11] fine (17169): for host 67.99.63.186 trying to POST /matter/billing/LegalBillSubmit.serv, error connecting to 10.10.15.21:8080 (IO time
out error)
We have increased the client connect-timeout in the Sun Webserver and it has not made any difference. We are wondering is there any way to diagnose http connector issues in jBoss? Is this a question for tomcat? Any way to debug log the connectors to see what is occurring? This is only happening in our production environment.
Any advise would be helpful.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4167952#4167952
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4167952
16 years, 5 months
[Design of Messaging on JBoss (Messaging/JBoss)] - Re: Some feedback on latest journal changes
by clebert.suconic@jboss.com
"timfox" wrote : Clebert-
|
| I've done a quick review of your latest changes, here are a few comments/questions:
|
| 1) I've made and committed several cosmetic changes - spacing, indentation etc.
|
I had to use auto-format on this file, as it was messed up with spaces and tabs.
"timfox" wrote :
| 2) final modifier was ommitted from many methods - I've added these and committed. Please remember to add these - they're very useful for catching bugs.
|
Some of them were missing the final in a long time. I try to keep the finals but I had forgotten few of them.
anonymous wrote :
| 3) JournalImpl::disableautoreclaim - All attributes should be in the positive, not the negative as per discussion some time back.
|
The attribute is autoReclaim which is on positive.
disableAutoReclaim would be a method used by tests only, which is the same as setAutoReclaim(false), which I'm changing it to on TestableJournal.
4) JournalTransaction:commit, commented out line:
//throw new IllegalStateException("Cannot find add info " + n.b);
If the line is not needed any more, delete it, don't just comment it, or someone (like me) will wonder why it's still there
Thanks for pointing out. I had forgotten that comment since the 6th commit of the file.
anonymous wrote :
|
| 5) writeTransaction - why do we need to write a "transaction complete" record with all the ids?
|
| anonymous wrote :
| |
| | we record the number of elements per file. (The ID recorded is the FileSequenceID)
| |
| | To make sure there is no holes on the commit of the transaction.
| | I record the number of elements per file used.
| |
| | Say.. if a commit used 1000 elements on fileSequence=1, and 100 elements on fileSequence=2, I will record:
| |
| | 1,1000,2,100
| |
| | The first attempt was to record the total elements but a file could be reclaimed and part of the transaction gone, so I couldn't verify the completeness of the commit.
| |
| |
|
| 6) @supressWarnings - why do we need this annotation?
|
This conversion gives you a warning, even though is a legal conversion:
Pair<Integer, Integer> values[] = (Pair<Integer, Integer>[]) new Pair[numberOfFiles];
I'm removing the annotation from that method, but I don't know how to solve the above warning.
anonymous wrote :
| 7) long load(LoadManager reloadManager) throws Exception - this method is only called internally so don't add it to the public interface
|
|
My intention is to keep it as part of the interface, and eventually replace the usage of load(List, List) by this method, where instead of allocating a lot of memory during load we send the messages directly to where they belong.
There are tests using that method also.
anonymous wrote :
| 8) JournalImpl::load:
| if (recordType < ADD_RECORD || recordType > ROLLBACK_RECORD)
| {
| continue;
| }
| Why do we ignore these?
|
|
This is part of the logic of looking for valid records on the file.
Any valid record will:
- start with a valid record descriptor byte (ADD_RECORD, UPDATE_RECORD.... ROLLBACK_RECORD).
- Have the fileSequenceID between the 2nd and 5th byte
- Have the checkSize at its 4 latest bytes.
I can't read records sequentially as we could have holes, and this will also couple with alignment from NIO<->AIO
anonymous wrote :
|
| 9) Please respect the correct sections of the file, public, private etc. e.g. debug() method in wrong section of the file
|
|
I did this on purpose. When I'm debugging the file, I usually set trace=true manually and change the trace method. I'm keepting the static private method close to the attribute as it is easier that way.
anonymous wrote :
| 10) JournalTransaction::get/isInvalid - I can't see this is actually used for anything, and if it is used it should be volatile or synchronized since could be called by different threads.
|
Thanks! I was going to use this for callback errors, I solved it some other way and forgot the method there.
anonymous wrote :
| 11) lock.acquire should go outside of try block, like this:
| lock.acquire should go outside the try block, like this:
| lock.acquire
| try
| {
| ...
| }
| finally
| {
| lock.release();
| }
|
ok
anonymous wrote :
| 12) The locking on the append methods is effectively making the journal single threaded. Is this deliberate?
|
We aways had a record on appendRecord. We can't change currentFile until the checks on currentFile is done.
The new thing done was putting the appendRecord on a higher level, as the counters were being messed up.
I can put the lock back on appendRecord, but I would to do more testings with that.
I would need to think about how to remove the lock at all. (There is a JIRA for that)
anonymous wrote :
| 13) Why addandGet(1) rather than incrementandGet().
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4167950#4167950
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4167950
16 years, 5 months
[Design of JBoss ESB] - Problem in Using Notifiers
by Neha29
Hi,
Im using jboss-soa-p.4.2.0.I need to notify the failure and success of my processing in JBoss ESb.Hence i used org.jboss.soa.esb.actions.Notifier class.
When there is success the notifier works but it does not work in case of exception is thrown by my custom action class.
My Jboss-esb.xml is :
| <?xml version="1.0"?>
| <jbossesb parameterReloadSecs="5"
| xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml..."
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml... http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml...">
| <providers>
| <jms-provider connection-factory="ConnectionFactory" name="JBossMQ">
| <jms-bus busid="quickstartCalGwChannel">
| <jms-message-filter
| dest-name="queue/quickstart_calculator_Request_gw" dest-type="QUEUE"/>
| </jms-bus>
| <jms-bus busid="quickstartCalEsbChannel">
| <jms-message-filter
| dest-name="queue/quickstart_calculator_Request_esb" dest-type="QUEUE"/>
| </jms-bus>
| <jms-bus busid="quickstartHelloReq">
| <jms-message-filter dest-name="queue/quickstart_hello_Request" dest-type="QUEUE"/>
| </jms-bus>
| <jms-bus busid="quickstartHelloESB">
| <jms-message-filter dest-name="queue/quickstart_hello_Request_esb" dest-type="QUEUE"/>
| </jms-bus>
| </jms-provider>
| </providers>
| <services>
| <service category="CalculatorServiceESB" description="Calculator" name="CalculatorService">
| <listeners>
| <jms-listener busidref="quickstartCalGwChannel" is-gateway="true"
| maxThreads="1" name="JMS-Gateway"/>
| <jms-listener busidref="quickstartCalEsbChannel" maxThreads="1" name="Calculator"/>
| </listeners>
| <actions mep="OneWay">
| <action
| class="org.jboss.soa.esb.samples.quickstart.calculator.MyCalculatorService"
| name="action1" process="displayMessage"/>
| <action class="org.jboss.soa.esb.actions.SystemPrintln" name="action2">
| <property name="printfull" value="true"/>
| </action>
| <!-- The next action is for Continuous Integration testing -->
| <action class="org.jboss.soa.esb.actions.TestMessageStore" name="testStore"/>
| <action class="org.jboss.soa.esb.actions.SystemPrintln" name="action3">
| <property name="printfull" value="true"/>
| </action>
| <action class="org.jboss.soa.esb.actions.Notifier" name="notificationAction">
| <property name="okMethod" value="notifyOK"/>
| <property name="exceptionMethod" value="notifyError"/>
| <property name="notification-details">
| <NotificationList type="OK">
| <target class="NotifyConsole"/>
| <target class="NotifyQueues">
| <messageProp name="quickstart" value="Calculator_Response"/>
| <queue jndiName="queue/quickstart_calculator_Response_esb_Alert"/>
| </target>
| </NotificationList>
| <NotificationList type="err">
| <target class="NotifyConsole"/>
| <target class="NotifyQueues">
| <messageProp name="quickstart" value="Calculator_Response"/>
| <queue jndiName="queue/quickstart_calculator_Response_esb_Alert"/>
| </target>
| <target class="NotifyFiles" >
| <file name="@results.dir(a)/badresult.log" />
| </target>
| </NotificationList>
| </property>
|
| </action> </actions>
| </service>
| </services>
| </jbossesb>
|
org.jboss.soa.esb.samples.quickstart.calculator.MyCalculatorService is my custom action class which performs some processing.
I want to notify the exception that is outcome of some unusual processing done in this class.
What should i do?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4167881#4167881
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4167881
16 years, 5 months