[JBoss JIRA] Updated: (JGRP-180) Harden stack to prevent loss of intra-stack events
by Bela Ban (JIRA)
[ http://jira.jboss.com/jira/browse/JGRP-180?page=all ]
Bela Ban updated JGRP-180:
--------------------------
Fix Version/s: 2.x
(was: 2.6)
Haven't run into this scenario yet, so I move it to 2.x
> Harden stack to prevent loss of intra-stack events
> --------------------------------------------------
>
> Key: JGRP-180
> URL: http://jira.jboss.com/jira/browse/JGRP-180
> Project: JGroups
> Issue Type: Task
> Affects Versions: 2.2.9, 2.2.9.1, 2.2.8
> Reporter: Bela Ban
> Assigned To: Bela Ban
> Fix For: 2.x
>
>
> When an *intra-stack* event is lost, this can be serious (*inter-stack* message are simply retransmitted, so that is not critical).
> Losses are mainly caused by runtime exceptions, e.g. OutOfMemory exception (OOM), or resource problems, and to a lesser extent by program bugs.
> For example, when a user sends a message using Channel.send(), and there is an exception, then the user will simply send the message again, possibly after fixing the cause of the exception.
> However, for events such as VIEW_CHANGE that are multicast by the GMS protocol, a loss can be serious: in this case, the view would never be received !
> The same applies to the up direction: when NAKACK has successfully delivered a message, if that message is lost travelling between NAKACK and the Channel, then is serious (essentially loss of that message).
> So while these error situations don't occur very often, if they do occur, they have serious consequences.
> SOLUTION:
> - Do nothing for user messages: Channel.send() throws an exception, user has to resend message. Note that in http://jira.jboss.com/jira/browse/JGRP-179, we made retransmission handling atomic, e.g. if there is an exception, there will *not* be a gap in the seqnos for NAKACK and UNICAST
> - Provide either a pass{Up/Down}Reliably() method or an Event with a RELIABLE field, such that this event needs to be acked. The sender (e.g. GMS on a VIEW_CHANGE) sends down the message and waits until it gets an ACK, which could be sent by the NAKACK or UNICAST protocols, or as last resort by the transport (TP). If the ACK is not received within M ms, the event is resent.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
18 years, 11 months
[JBoss JIRA] Created: (JGRP-510) NAKACK: adjust retransmission times based on statistics
by Bela Ban (JIRA)
NAKACK: adjust retransmission times based on statistics
-------------------------------------------------------
Key: JGRP-510
URL: http://jira.jboss.com/jira/browse/JGRP-510
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assigned To: Bela Ban
Priority: Minor
Fix For: 2.6
NAKACK can maintain a rolling average of the time it takes for a missing message to get retransmitted (time between sending the XMIT-REQ and reception of the missing message). This can be done per sender.
The retransmit_timeout values can be based on the rolling average, e.g. make this completely dynamic: instead of a set of retransmit timeouts we only define a retransmit_timeout, e.g. 30ms.
If a message is not able to get retransmitted the first time, we simply double that value (exponential backoff), until a max limit is reached.
When we discover that the rolling timeout is less than 30ms (e.g. 4ms), then we lower the retransmission timeout, e.g. to 4 ms (plus possibly a safety time, say 2ms), to a total of 6ms. This will make message retransmission faster, since we don't have to wait for 30ms to ask for retransmission.
OTOH, if the rolling average increases, we can also increase our retransmission timeout, to avoid overloading the network with spurious retransmission requests.
RESULT: message retransmission is more dynamic:
- Retransmit timeout is *per sender*
- On low retransmission ack times, we ask for retransmission sooner, therefore increasing message rates
- On high retransmission ack times, we throttle retransmission timeouts (and use exponential backoff), therefore reducing traffic
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
18 years, 11 months
[JBoss JIRA] Created: (JBPORTAL-1606) Portlet and service to see current users online
by Luca Stancapiano (JIRA)
Portlet and service to see current users online
-----------------------------------------------
Key: JBPORTAL-1606
URL: http://jira.jboss.com/jira/browse/JBPORTAL-1606
Project: JBoss Portal
Issue Type: Task
Security Level: Public (Everyone can see)
Components: Portal Core, Portal Samples
Affects Versions: 2.6 Final
Environment: developed with Eclipse 3.2.2 and jboss portal from http://anonsvn.jboss.org/repos/portal/tags/JBoss_Portal_2_6_0
Reporter: Luca Stancapiano
Assigned To: Julien Viet
Fix For: 2.6.1 Final
I developed together with Bolek a portlet and service to see current users online.
UI part is into portal-samples project. Modified and added files are:
// descriptors for portlet......I add portal-lib.tld to get support for i18n and Context to send info from portlet to jsp
core-samples/src/resources/portal-users-samples-war/WEB-INF/portlet.xml
core-samples/src/resources/portal-users-samples-war/WEB-INF/jboss-portlet.xml
core-samples/src/resources/portal-users-samples-war/WEB-INF/portal-lib.tld
core-samples/src/resources/portal-users-samples-war/WEB-INF/portlet-instances.xml
// I create three jsp....one when no user is online, one when there is a only user online and one for all other users online
core-samples/src/resources/portal-users-samples-war/WEB-INF/jsp/users/oneUser.jsp
core-samples/src/resources/portal-users-samples-war/WEB-INF/jsp/users/users.jsp
core-samples/src/resources/portal-users-samples-war/WEB-INF/jsp/users/noUser.jsp
// I add support for i18n with english and italian language
core-samples/src/resources/portal-users-samples-war/WEB-INF/classes/Resource.properties
core-samples/src/resources/portal-users-samples-war/WEB-INF/classes/Resource_it.properties
// this is a simple portlet that call a UserActivityService that schedule activities of users. This portlet print current users online and number of current users online
core-samples/src/main/org/jboss/portal/core/samples/users/CurrentUsersPortlet.java
// I updated build.xml to build portal-users-samples.war package to deploy it into application server
core-samples/build.xml
part about service and interceptor is into core:
// we add UsersActivityStatsService service and UserStats interceptor. The interceptor is added into InterceptorStackFactory,type=Server of jboss portal to catch all activities of users.
// rows updated are:
core/src/resources/portal-core-sar/META-INF/jboss-service.xml
// classes for UsersActivityStatsService service. There are an interface of service, an implementation and a class that represents an user activity registered into the service
core/src/main/org/jboss/portal/core/identity/UsersActivityStatsServiceImpl.java
core/src/main/org/jboss/portal/core/identity/UsersActivityStatsService.java
core/src/main/org/jboss/portal/core/identity/UserActivity.java
// this is UserStats interceptor
core/src/main/org/jboss/portal/core/aspects/server/UserStatsInterceptor.java
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
18 years, 11 months
[JBoss JIRA] Created: (JBRULES-1045) Predicate Null Pointer exception when using Java 5 Enum
by christopher barham (JIRA)
Predicate Null Pointer exception when using Java 5 Enum
-------------------------------------------------------
Key: JBRULES-1045
URL: http://jira.jboss.com/jira/browse/JBRULES-1045
Project: JBoss Rules
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 4.0.0.GA
Environment: Windows XP sp2, Jboss Rules 4.0.0 GA, Sun Java 1.5.0_11 VM, Eclipse 3.3 with JBOss Rules IDE 4.0
Reporter: christopher barham
Assigned To: Mark Proctor
Java 5 enums as column constraint do not work as expected. Cqauses Null pointer exception in mvel.MVELPredicateExpression.evaluate.
Using modified Eclipse generated Sample project to demonstrate:
DroolsTest now has an Enum for it's Message:
package com.sample;
import java.io.InputStreamReader;
import java.io.Reader;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.compiler.PackageBuilder;
import org.drools.rule.Package;
/**
* This is a sample file to launch a rule package from a rule source file.
*/
public class DroolsTest {
public static final void main(String[] args) {
try {
RuleBase ruleBase = readRule();
WorkingMemory workingMemory = ruleBase.newStatefulSession();
workingMemory.insert(Message.HELLO);
workingMemory.fireAllRules();
} catch (Throwable t) {
t.printStackTrace();
}
}
private static RuleBase readRule() throws Exception {
// read in the source
Reader source = new InputStreamReader(DroolsTest.class.getResourceAsStream("/Sample.drl"));
PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl(source);
Package pkg = builder.getPackage();
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage(pkg);
return ruleBase;
}
public enum Message {
GOODBYE, HELLO;
}
}
The Sample.drl rule is modified to:
package com.sample
import com.sample.DroolsTest.Message;
rule "Hello World"
when
m : Message( Message.HELLO )
then
System.out.println( m );
end
Stack trace given is:
org.drools.RuntimeDroolsException: Exception executing predicate org.drools.base.mvel.MVELPredicateExpression@10382a9
at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:197)
at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:122)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:20)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:168)
at org.drools.reteoo.Rete.assertObject(Rete.java:168)
at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:190)
at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:70)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:848)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:822)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:623)
at com.sample.DroolsTest.main(DroolsTest.java:21)
Caused by: java.lang.NullPointerException
at org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:39)
at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:191)
... 10 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
18 years, 11 months