[
https://issues.jboss.org/browse/AS7-648?page=com.atlassian.jira.plugin.sy...
]
Scott Stark commented on AS7-648:
---------------------------------
Mark Little indicated that the initDefaultProcess in the
com.arjuna.ats.arjuna.utils.Utility class is where the Uid implementation is chosen. That
method queries the
com.arjuna.ats.arjuna.common.CoreEnvironmentBean.getProcessImplementation:
/**
* Returns the class name of the Process implementation to use.
*
* Default: "com.arjuna.ats.internal.arjuna.utils.SocketProcessId"
* Equivalent deprecated property:
com.arjuna.ats.internal.arjuna.utils.processImplementation
*
* @return the name of a class implemeting Process.
*/
public String getProcessImplementation()
{
return processImplementation;
}
The proper way to implement this would be to add a processImplementation attribute to the
org.jboss.as.txn.TransactionSubsystemProviders as7 integration layer's parsing of the
urn:jboss:domain:transactions:1.0/core-environment, for example something based on the jdk
uuids:
<subsystem xmlns="urn:jboss:domain:transactions:1.0">
<recovery-environment socket-binding="txn-recovery-environment"
status-socket-binding="txn-status-manager"/>
<core-environment socket-binding="txn-socket-process-id"
process-implementation="java-uuid" />
</subsystem>
Arjuna service creating an anonymous localhost binding outside of
standalone.xml configuration.
-----------------------------------------------------------------------------------------------
Key: AS7-648
URL:
https://issues.jboss.org/browse/AS7-648
Project: Application Server 7
Issue Type: Enhancement
Components: Transactions
Reporter: Scott Stark
Assignee: Jonathan Halliday
I'm seeing an attempt to bind an anonymous socket to localhost/127.0.0.1 even when
the standalone.xml configuration has specified a loopback-address other than
localhost/127.0.0.1 as the default:
<interfaces>
<interface name="default">
<loopback-address value="127.0.250.1"/>
</interface>
The port is also not one listed in the socket-binding-group section. Both the interface
and port should be coming from the server configuration.
Thread attempting bind call:
Socket[addr=localhost/127.0.0.1,port=0,localport=52394]
Transaction Expired Entry Monitor@2745 daemon, prio=5, in group 'main', status:
'RUNNING'
blocks MSC service thread 1-1@1104
at java.net.PlainSocketImpl.listen(PlainSocketImpl.java:398)
at java.net.ServerSocket.bind(ServerSocket.java:329)
at java.net.ServerSocket.<init>(ServerSocket.java:194)
at
com.arjuna.ats.internal.arjuna.utils.SocketProcessId.createSocket(SocketProcessId.java:99)
at
com.arjuna.ats.internal.arjuna.utils.SocketProcessId.<init>(SocketProcessId.java:76)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeConstructorAccessorImpl.java:-1)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.arjuna.ats.arjuna.utils.Utility.initDefaultProcess(Utility.java:336)
at com.arjuna.ats.arjuna.utils.Utility.getProcess(Utility.java:348)
at com.arjuna.ats.arjuna.utils.Utility.getpid(Utility.java:287)
at com.arjuna.ats.arjuna.common.Uid.<init>(Uid.java:84)
at
com.arjuna.ats.arjuna.state.OutputObjectState.<init>(OutputObjectState.java:63)
at
com.arjuna.ats.internal.arjuna.objectstore.FileSystemStore.allObjUids(FileSystemStore.java:158)
at com.arjuna.ats.arjuna.objectstore.ObjectStore.allObjUids(ObjectStore.java:70)
at
com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner.scan(ExpiredTransactionStatusManagerScanner.java:82)
at
com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.run(ExpiredEntryMonitor.java:172)
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira