[GLASSFISH-21656] list-jms-resources fails if operand is clustered instance Created: 05/Jan/17  Updated: 19/Jan/17  Resolved: 18/Jan/17

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 3.1.2.2, 4.1, 4.1.1, 5.0
Fix Version/s: None

Type: Bug Priority: Major
Reporter: yama0428 Assignee: mskdeepak
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

asadmin list-jms-resources fails if operand is clustered instance.
On the other hand, other list commands can be executed even if operand is clustered instance.

C:\glassfish-4.1.1\glassfish4\glassfish\bin>asadmin list-jms-resources instance
remote failure: The list-jms-resources command is not allowed on target instance because it is part of cluster cluster
Command list-jms-resources failed.

C:\glassfish-4.1.1\glassfish4\glassfish\bin>asadmin list-jdbc-resources instance
jdbc/__default
Command list-jdbc-resources executed successfully.

C:\glassfish-4.1.1\glassfish4\glassfish\bin>asadmin list-connector-resources instance
jms/__defaultConnectionFactory
Command list-connector-resources executed successfully.

This is the patch for this problem.

ListJMSresources.java
@PerLookup
@CommandLock(CommandLock.LockType.NONE)
@I18n("list.jms.resources")
@ExecuteOn({RuntimeType.DAS})
@TargetType({CommandTarget.DAS,CommandTarget.STANDALONE_INSTANCE,CommandTarget.CLUSTER,CommandTarget.DOMAIN,CommandTarget.CLUSTERED_INSTANCE})
@RestEndpoints({
    @RestEndpoint(configBean=Resources.class,
        opType=RestEndpoint.OpType.GET, 
        path="list-jms-resources", 
        description="list-jms-resources")
})
public class ListJMSResources implements AdminCommand {


 Comments   
Comment by mskdeepak [ 19/Jan/17 ]

Fixed in r64405





[GLASSFISH-21511] cluster glassfish instance Created: 05/Feb/16  Updated: 13/Jan/17

Status: Open
Project: glassfish
Component/s: admin, jms
Affects Version/s: 4.1
Fix Version/s: None

Type: Task Priority: Major
Reporter: nickyfulls Assignee: Yamini K B
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

How can I solve the following problem? What does it mean ?

[2016-02-05T16:12:27.897+0100] [glassfish 4.1] [SEVERE] [] [] [tid: _ThreadID=122 _ThreadName=Thread-9] [timeMillis: 1454685147897] [levelValue: 1000] [[
gogo: FileNotFoundException: /home/glassfish/glassfish4/glassfish/nodes/localhost-domain1/Coo1/config/noop=true (File o directory non esistente)]]
zito.2016
[2016-02-05T16:12:27.925+0100] [glassfish 4.1] [SEVERE] [] [] [tid: _ThreadID=122 _ThreadName=Thread-9] [timeMillis: 1454685147925] [levelValue: 1000] [[
java.io.FileNotFoundException: /home/glassfish/glassfish4/glassfish/nodes/localhost-domain1/Coo1/config/noop=true (File o directory non esistente)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
at org.apache.felix.gogo.shell.Shell.readScript(Shell.java:218)
at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:161)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469)
at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395)
at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
at org.apache.felix.gogo.shell.Activator.run(Activator.java:75)
at java.lang.Thread.run(Thread.java:745)]]



 Comments   
Comment by saad_ab [ 06/Feb/16 ]

nodes not created successfully!





[GLASSFISH-21655] rollback of create-jms-resource fails when resource has already existed Created: 05/Jan/17  Updated: 11/Jan/17

Status: Open
Project: glassfish
Component/s: jms
Affects Version/s: 3.1.2.2, 4.1, 4.1.1, 5.0
Fix Version/s: None

Type: Bug Priority: Major
Reporter: yama0428 Assignee: mskdeepak
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   



 Comments   
Comment by yama0428 [ 05/Jan/17 ]

Rollback of create-jms-resource fails when resource has already existed.

For example, aaa-Connection-Pool isn't deleted.

C:\glassfish-4.1.1\glassfish4\glassfish\bin>asadmin create-jms-resource --restype javax.jms.Topic aaa
Administered object aaa created.
Warning: Instance instance seems to be offline; command create-admin-object was not replicated to that instance
Command create-jms-resource executed successfully.

C:\glassfish-4.1.1\glassfish4\glassfish\bin>asadmin create-jms-resource --restype javax.jms.ConnectionFactory aaa
remote failure: Unable to create connection resource.
A MultiException has 1 exceptions.  They are:
1. java.lang.IllegalArgumentException:  Invalid option: raname

A MultiException has 1 exceptions.  They are:
1. java.lang.IllegalArgumentException:  Invalid option: raname

Warning: Instance instance seems to be offline; command create-connector-connection-pool was not replicated to that instance
Command create-jms-resource failed.

C:\glassfish-4.1.1\glassfish4\glassfish\bin>asadmin list-connector-connection-pools
CLI031: Warning: Option "target" is obsolete and will be ignored.
CLI031: Warning: Option "target" is obsolete and will be ignored.
jms/__defaultConnectionFactory-Connection-Pool
aaa-Connection-Pool
Command list-connector-connection-pools executed successfully.

This is the patch for this problem.

CreateJMSResource.java
    public void execute(AdminCommandContext context) {
....

          ParameterMap params = populateConnectionResourceParameters();
          commandRunner.getCommandInvocation("create-connector-resource", subReport, context.getSubject()).parameters(params).execute();

          if (ActionReport.ExitCode.FAILURE.equals(subReport.getActionExitCode())){
              report.setMessage(localStrings.getLocalString("create.jms.resource.cannotCreateConnectorResource",
                      "Unable to create connection resource."));
              report.setActionExitCode(ActionReport.ExitCode.FAILURE);

              //rollback the connection pool ONLY if we created it...
              if (createdPool) {
                  ActionReport subReportForRollback =  report.addSubActionsReport();
                  commandRunner.getCommandInvocation("delete-connector-connection-pool", subReportForRollback, context.getSubject()).parameters(populateConnectionPoolParametersForRollback()).execute();
              }


              return;
          }
....
    }

    private ParameterMap populateConnectionPoolParametersForRollback(){
        ParameterMap parameters = new ParameterMap();
        parameters.set(DEFAULT_OPERAND, jndiNameForConnectionPool);
        return parameters;
    }




[GLASSFISH-21629] Circular dependency during start of glassfish 4.1.1 with deployed and installed activemq-rar-5.13.0.rar Created: 05/Dec/16  Updated: 10/Jan/17

Status: Open
Project: glassfish
Component/s: jms
Affects Version/s: 4.1.1
Fix Version/s: None

Type: Bug Priority: Blocker
Reporter: ls2016 Assignee: sameerpandit
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

During the start I got the following messages (with glassfish 4.1 it works):

Launching GlassFish on Felix platform
Dez 05, 2016 3:07:36 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner createBundleProvisioner
INFORMATION: Create bundle provisioner class = class com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner.
Dez 05, 2016 3:07:36 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner$DefaultCustomizer getLocations
WARNUNG: Skipping entry because it is not an absolute URI.
Dez 05, 2016 3:07:36 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner$DefaultCustomizer getLocations
WARNUNG: Skipping entry because it is not an absolute URI.
Dez 05, 2016 3:07:36 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner startBundles
WARNUNG: Can not start bundle file:/C:/Entwicklung/glassfish-4.1.1/glassfish/modules/core.jar because it is not contained in the list of installed bundles.
Registered com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOSGiGlassFishRuntime@5173db66 in service registry.
#!## LogManagerService.postConstruct : rootFolder=C:\Entwicklung\glassfish-4.1.1\glassfish
#!## LogManagerService.postConstruct : templateDir=C:\Entwicklung\glassfish-4.1.1\glassfish\lib\templates
#!## LogManagerService.postConstruct : src=C:\Entwicklung\glassfish-4.1.1\glassfish\lib\templates\logging.properties
#!## LogManagerService.postConstruct : dest=C:\Entwicklung\glassfish-4.1.1\glassfish\domains\domain1\config\logging.properties
Information: Running GlassFish Version: GlassFish Server Open Source Edition 4.1.1 (build 1)
Information: Server log file is using Formatter class: com.sun.enterprise.server.logging.ODLLogFormatter
Information: Realm [admin-realm] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created.
Information: Realm [file] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created.
Information: Realm [certificate] of classtype [com.sun.enterprise.security.auth.realm.certificate.CertificateRealm] successfully created.
Information: JTS5014: Recoverable JTS instance, serverId = [100]
Schwerwiegend: JTS5043: Unexpected error occurred while creating transaction manager instance
MultiException stack 1 of 1
java.lang.IllegalStateException: Circular dependency involving org.glassfish.resourcebase.resources.listener.ResourceManager was found. Full descriptor is SystemDescriptor(
implementation=org.glassfish.resourcebase.resources.listener.ResourceManager
name=ResourceManager
contracts=

{org.glassfish.resourcebase.resources.listener.ResourceManager,org.jvnet.hk2.config.ConfigListener}

scope=org.glassfish.hk2.runlevel.RunLevel
qualifiers={}
descriptorType=CLASS
descriptorVisibility=NORMAL
metadata=runLevelValue=

{2}

,runLevelMode=

{0}

,Bundle-SymbolicName=

{org.glassfish.main.resourcebase.resources.nucleus-resources}

,Bundle-Version=

{4.1.1}

rank=0
loader=OsgiPopulatorPostProcessor.HK2Loader(OSGiModuleImpl:: Bundle = [org.glassfish.main.resourcebase.resources.nucleus-resources [216]], State = [READY],1567501730)
proxiable=null
proxyForSameScope=null
analysisName=null
id=1084
locatorId=0
identityHashCode=761877137
reified=true)
at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:179)
at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:88)
at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServices(ServiceLocatorImpl.java:845)
at com.sun.jts.jta.TransactionServiceProperties.initRecovery(TransactionServiceProperties.java:318)
at com.sun.jts.jta.TransactionManagerImpl.<init>(TransactionManagerImpl.java:209)
at com.sun.jts.jta.TransactionManagerImpl.getTransactionManagerImpl(TransactionManagerImpl.java:177)
at com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate.postConstruct(JavaEETransactionManagerJTSDelegate.java:145)
at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:326)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:374)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:83)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:71)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:97)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:154)
at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:199)
at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:122)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072)
at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1428)
at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServices(ServiceLocatorImpl.java:803)
at org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServices(ServiceLocatorImpl.java:791)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.initDelegates(JavaEETransactionManagerSimplified.java:1504)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.postConstruct(JavaEETransactionManagerSimplified.java:165)
at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:326)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:374)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:83)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:71)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:97)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:154)
at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:199)
at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:122)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114)
at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:698)
at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:78)
at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:211)
at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:234)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:357)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:83)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:71)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:97)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:154)
at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:199)
at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:122)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072)
at org.jvnet.hk2.internal.ServiceLocatorImpl.getService(ServiceLocatorImpl.java:689)
at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:78)
at org.jvnet.hk2.internal.ClazzCreator.resolve(ClazzCreator.java:211)
at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:234)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:357)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:83)
at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:71)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:97)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:154)
at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:199)
at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:122)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072)
at org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetService(ServiceLocatorImpl.java:767)
at org.jvnet.hk2.internal.ServiceLocatorImpl.getUnqualifiedService(ServiceLocatorImpl.java:774)
at org.jvnet.hk2.internal.IterableProviderImpl.get(IterableProviderImpl.java:111)
at com.sun.enterprise.resource.deployer.ResourceAdapterConfigDeployer.getConnectorRuntime(ResourceAdapterConfigDeployer.java:99)
at com.sun.enterprise.resource.deployer.ResourceAdapterConfigDeployer.deployResource(ResourceAdapterConfigDeployer.java:86)
at org.glassfish.resourcebase.resources.listener.ResourceManager.deployResources(ResourceManager.java:183)
at org.glassfish.resourcebase.resources.listener.ResourceManager.postConstruct(ResourceManager.java:129)
at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:326)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:374)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471)
at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:228)
at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:88)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$UpOneLevel.run(CurrentTaskFuture.java:762)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Information: Authorization Service has successfully initialized.
Information: Registered org.glassfish.ha.store.adapter.cache.ShoalBackingStoreProxy for persistence-type = replicated in BackingStoreFactoryRegistry
Warnung: Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-1, realClassName=org.glassfish.grizzly.http2.Http2AddOn
Information: Grizzly Framework 2.3.23 started in: 46ms - bound to [/0.0.0.0:8080]
Warnung: Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-2, realClassName=org.glassfish.grizzly.http2.Http2AddOn
Information: Grizzly Framework 2.3.23 started in: 9ms - bound to [/0.0.0.0:8181]
Warnung: Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=admin-listener, realClassName=org.glassfish.grizzly.http2.Http2AddOn
Information: Grizzly Framework 2.3.23 started in: 3ms - bound to [/0.0.0.0:4848]
Information: Grizzly Framework 2.3.23 started in: 13ms - bound to [/0.0.0.0:3700]
Information: visiting unvisited references
Information: HV000001: Hibernate Validator 5.1.2.Final
Information: Loading application activemq-rar done in 5.691 ms
Information: GlassFish Server Open Source Edition 4.1.1 (1) startup time : Felix (4.613ms), startup services(8.181ms), total(12.794ms)
Information: Grizzly Framework 2.3.23 started in: 33ms - bound to [/0.0.0.0:7676]
Warnung: Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-2, realClassName=org.glassfish.grizzly.http2.Http2AddOn
Information: Grizzly Framework 2.3.23 started in: 35ms - bound to [/0.0.0.0:8181]
Information: JMXStartupService has started JMXConnector on JMXService URL service:jmx:rmi://nb00887.GDV.INTRA:8686/jndi/rmi://nb00887.GDV.INTRA:8686/jmxrmi
Warnung: Instance could not be initialized. Class=interface org.glassfish.grizzly.http.server.AddOn, name=http-listener-1, realClassName=org.glassfish.grizzly.http2.Http2AddOn
Information: Grizzly Framework 2.3.23 started in: 10ms - bound to [/0.0.0.0:8080]
Information: Listening to REST requests at context: /management/domain.
Information: Registered com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOSGiGlassFishImpl@65bcf7c2 as OSGi service registration: org.apache.felix.framework.ServiceRegistrationImpl@5fb7183b.
Information: visiting unvisited references
Information: Created HTTP listener http-listener-1 on host/port 0.0.0.0:8080
Information: Created HTTP listener http-listener-2 on host/port 0.0.0.0:8181
Information: Created HTTP listener admin-listener on host/port 0.0.0.0:4848
Information: Created virtual server server
Information: Created virtual server __asadmin
Information: Setting JAAS app name glassfish-web
Information: Virtual server server loaded default web module
Information: Java security manager is disabled.
Information: Entering Security Startup Service.
Information: Loading policy provider com.sun.enterprise.security.provider.PolicyWrapper.
Information: Security Service(s) started successfully.
Information: visiting unvisited references
Information: visiting unvisited references
Information: visiting unvisited references
Information: Mojarra 2.2.12 ( 20150720-0848 https://svn.java.net/svn/mojarra~svn/tags/2.2.12@14885) für Kontext '' wird initialisiert.
Information: Loading application [__admingui] at [/]
Information: Loading application __admingui done in 6.096 ms






[GLASSFISH-21640] JMS message in server.log is logged only message key. Created: 16/Dec/16  Updated: 05/Jan/17

Status: In Progress
Project: glassfish
Component/s: jms
Affects Version/s: 4.1, 4.1.1, 5.0
Fix Version/s: None

Type: Bug Priority: Major
Reporter: yama0428 Assignee: mskdeepak
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

JMS message in server.log is logged only message key.
So I can not check the url of the broker.

[2016-12-16T10:16:34.857+0900] [glassfish 4.1] [INFO] [] [javax.enterprise.resource.jms] [tid: _ThreadID=74 _ThreadName=Recovery Helper Thread] [timeMillis: 1481850994857] [levelValue: 800] [[
  addresslist.setjmsservice.provider]]

[2016-12-16T10:16:34.858+0900] [glassfish 4.1] [INFO] [] [javax.enterprise.resource.jms] [tid: _ThreadID=74 _ThreadName=Recovery Helper Thread] [timeMillis: 1481850994858] [levelValue: 800] [[
  jms.connection.url]]

I think this is regression.
After rev. 62588, LogDomains is not used in appserver/jms/jms-core.

MQAddressList.java before rev.62588
    static Logger logger = LogDomains.getLogger(MQAddressList.class,  LogDomains.JMS_LOGGER);
MQAddressList.java after rev.62588
    private static final Logger logger = Logger.getLogger(ActiveJmsResourceAdapter.JMS_MAIN_LOGGER);

So I think LogDomains should be used again to obtain the valid logger.



 Comments   
Comment by mskdeepak [ 05/Jan/17 ]

The change mentioned above(rev. 62588) has changed the logger object.
Earlier, the following used to work:

ActiveJmsResourceAdapter.java:1595
_logger.log(Level.INFO, "jms.connection.url", val);

Now, since we are not using LogDomains, this is not working. So, the following change needs to be made:

ActiveJmsResourceAdapter.java:1595
_logger.log(Level.INFO, "jms.connection.url : {0}", new Object[]{val});

The changes made in revision 62588 have changed the logger objects in the JMS module. We need to make the corresponding changes(as shown above) for other log messages affected in this module.





[GLASSFISH-21654] NullPointerException is logged when delete-local-instance is executed Created: 27/Dec/16  Updated: 28/Dec/16

Status: Open
Project: glassfish
Component/s: jms
Affects Version/s: 3.1.2.2, 4.1, 4.1.1, 5.0
Fix Version/s: None

Type: Bug Priority: Major
Reporter: yama0428 Assignee: David Zhao
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

NullPointerException is logged when delete-local-instance is executed.
In addition, the message that includes only the key is logged.

[2016-12-27T15:46:34.672+0900] [glassfish 4.1] [SEVERE] [] [] [tid: _ThreadID=163 _ThreadName=Thread-9] [[
  java.lang.NullPointerException
	at com.sun.enterprise.connectors.jms.system.MQAddressList.createJmsHostCopy(MQAddressList.java:660)
	at com.sun.enterprise.connectors.jms.system.MQAddressList.getResolvedJmsHost(MQAddressList.java:644)
	at com.sun.enterprise.connectors.jms.system.MQAddressList.getResolvedLocalJmsHostsInMyCluster(MQAddressList.java:467)
	at com.sun.enterprise.connectors.jms.system.MQAddressList.setupForCluster(MQAddressList.java:441)
	at com.sun.enterprise.connectors.jms.system.MQAddressList.setup(MQAddressList.java:139)
	at com.sun.enterprise.connectors.jms.system.JMSConfigListener.getBrokerList(JMSConfigListener.java:261)
	at com.sun.enterprise.connectors.jms.system.JMSConfigListener.changed(JMSConfigListener.java:230)
	at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:400)
	at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:390)
	at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:280)
	at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:278)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)]]

[2016-12-27T15:46:34.823+0900] [glassfish 4.1] [INFO] [] [javax.enterprise.resource.jms] [tid: _ThreadID=163 _ThreadName=pool-24-thread-1] [[
  set.cluster.brokerlist.success]]

Reproducible steps are as follows.

C:\gf41\glassfish4\glassfish\bin>asadmin create-cluster cluster
Command create-cluster executed successfully.

C:\gf41\glassfish4\glassfish\bin>asadmin create-local-instance --cluster cluster instance
Rendezvoused with DAS on localhost:4848.
Using DAS host localhost and port 4848 from existing das.properties for node
localhost-domain1. To use a different DAS, create a new node using create-node-ssh or
create-node-config. Create the instance with the new node and correct
host and port:
asadmin --host das_host --port das_port create-local-instance --node node_name instance_name.
Port Assignments for server instance instance:
JMX_SYSTEM_CONNECTOR_PORT=28694
JMS_PROVIDER_PORT=27684
HTTP_LISTENER_PORT=28088
ASADMIN_LISTENER_PORT=24856
JAVA_DEBUGGER_PORT=29017
IIOP_SSL_LISTENER_PORT=23828
IIOP_LISTENER_PORT=23708
OSGI_SHELL_TELNET_PORT=26674
HTTP_SSL_LISTENER_PORT=28189
IIOP_SSL_MUTUALAUTH_PORT=23928
Command create-local-instance executed successfully.

C:\gf41\glassfish4\glassfish\bin>asadmin start-cluster cluster
Command start-cluster executed successfully.

C:\gf41\glassfish4\glassfish\bin>asadmin create-local-instance --cluster cluster instance2
Rendezvoused with DAS on localhost:4848.
Using DAS host localhost and port 4848 from existing das.properties for node
localhost-domain1. To use a different DAS, create a new node using create-node-ssh or
create-node-config. Create the instance with the new node and correct
host and port:
asadmin --host das_host --port das_port create-local-instance --node node_name instance_name.
Port Assignments for server instance instance2:
JMX_SYSTEM_CONNECTOR_PORT=28695
JMS_PROVIDER_PORT=27685
HTTP_LISTENER_PORT=28089
ASADMIN_LISTENER_PORT=24857
JAVA_DEBUGGER_PORT=29018
IIOP_SSL_LISTENER_PORT=23829
IIOP_LISTENER_PORT=23709
OSGI_SHELL_TELNET_PORT=26675
HTTP_SSL_LISTENER_PORT=28190
IIOP_SSL_MUTUALAUTH_PORT=23929
Command create-local-instance executed successfully.

C:\gf41\glassfish4\glassfish\bin>asadmin set cluster.jms-service.type=REMOTE
instance:
cluster.jms-service.type=REMOTE

cluster.jms-service.type=REMOTE
Command set executed successfully.

C:\gf41\glassfish4\glassfish\bin>asadmin delete-local-instance instance2
Command delete-local-instance executed successfully.


 Comments   
Comment by David Zhao [ 28/Dec/16 ]

When create-local-instance, by default it will generate EMBEDDED jms service. Why do you change it to REMOTE without any other jms configuration changes?

Comment by yama0428 [ 28/Dec/16 ]

We use REMOTE broker.
So these commands have already been done before executing asadmin commands.

C:\windows\system32>c:\gf41\glassfish4\mq\bin\imqsvcadmin install -javahome "c:\
Program Files (x86)\Java\jdk1.7.0_79"
Installation of service Message Queue 5.0 Broker successful.

C:\windows\system32>net start "Message Queue 5.0 Broker"

NPE may be thrown since revision 39053.

Admin CLI support for Clusters and bug fixes for 12323 and 12759

I think either null check in MQAddressList#createJmsHostCopy or checking REMOTE mode is needed.

Comment by David Zhao [ 28/Dec/16 ]

You can follow the tutorial to Configure a GlassFish Cluster to Use a Remote Broker Cluster, delete the default_JMS_host at first and then create-jms-host for REMOTE usage. Refer to https://docs.oracle.com/cd/E26576_01/doc.312/e24934/jms.htm#GSHAG00160

Comment by yama0428 [ 28/Dec/16 ]

Shouldn't I use "asadmin set cluster.jms-service.type=REMOTE" command?

REMOTE type broker is written in the following manual.
https://docs.oracle.com/cd/E26576_01/doc.312/e24928/jms.htm#GSADG00775

Although I did the following steps, the same messages were logged.

C:\gf41\glassfish4\glassfish\bin>asadmin create-cluster cluster7
Command create-cluster executed successfully.

C:\gf41\glassfish4\glassfish\bin>asadmin delete-jms-host --target cluster7 default_JMS_host
Did not find any suitable instances for target cluster7; command executed on DAS only
Command delete-jms-host executed successfully.

C:\gf41\glassfish4\glassfish\bin>asadmin create-jms-host --target cluster7 --mqhost localhost --mqport 7676 --mquser admin --mqpassword admin myhost
Jms Host myhost created.
Did not find any suitable instances for target cluster7; command executed on DAS only
Command create-jms-host executed successfully.

C:\gf41\glassfish4\glassfish\bin>asadmin set cluster7.jms-service.type=REMOTE
cluster7.jms-service.type=REMOTE
Command set executed successfully.

C:\gf41\glassfish4\glassfish\bin>asadmin create-local-instance --cluster cluster7 cluster7-1
Rendezvoused with DAS on localhost:4848.
Using DAS host localhost and port 4848 from existing das.properties for node
localhost-domain1. To use a different DAS, create a new node using create-node-ssh or
create-node-config. Create the instance with the new node and correct
host and port:
asadmin --host das_host --port das_port create-local-instance --node node_name instance_name.
Port Assignments for server instance cluster7-1:
JMX_SYSTEM_CONNECTOR_PORT=28696
JMS_PROVIDER_PORT=27686
HTTP_LISTENER_PORT=28090
ASADMIN_LISTENER_PORT=24858
JAVA_DEBUGGER_PORT=29019
IIOP_SSL_LISTENER_PORT=23830
IIOP_LISTENER_PORT=23710
OSGI_SHELL_TELNET_PORT=26676
HTTP_SSL_LISTENER_PORT=28191
IIOP_SSL_MUTUALAUTH_PORT=23930
Command create-local-instance executed successfully.

C:\gf41\glassfish4\glassfish\bin>asadmin start-cluster cluster7
Command start-cluster executed successfully.

C:\gf41\glassfish4\glassfish\bin>asadmin create-local-instance --cluster cluster7 cluster7-2
Rendezvoused with DAS on localhost:4848.
Using DAS host localhost and port 4848 from existing das.properties for node
localhost-domain1. To use a different DAS, create a new node using create-node-ssh or
create-node-config. Create the instance with the new node and correct
host and port:
asadmin --host das_host --port das_port create-local-instance --node node_name instance_name.
Port Assignments for server instance cluster7-2:
JMX_SYSTEM_CONNECTOR_PORT=28697
JMS_PROVIDER_PORT=27687
HTTP_LISTENER_PORT=28091
ASADMIN_LISTENER_PORT=24859
JAVA_DEBUGGER_PORT=29020
IIOP_SSL_LISTENER_PORT=23831
IIOP_LISTENER_PORT=23711
OSGI_SHELL_TELNET_PORT=26677
HTTP_SSL_LISTENER_PORT=28192
IIOP_SSL_MUTUALAUTH_PORT=23931
Command create-local-instance executed successfully.

C:\gf41\glassfish4\glassfish\bin>asadmin delete-local-instance  cluster7-2
Command delete-local-instance executed successfully.

[2016-12-28T15:18:09.876+0900] [glassfish 4.1] [SEVERE] [] [] [tid: _ThreadID=149 _ThreadName=Thread-9] [[
  java.lang.NullPointerException
	at com.sun.enterprise.connectors.jms.system.MQAddressList.createJmsHostCopy(MQAddressList.java:660)
	at com.sun.enterprise.connectors.jms.system.MQAddressList.getResolvedJmsHost(MQAddressList.java:644)
	at com.sun.enterprise.connectors.jms.system.MQAddressList.getResolvedLocalJmsHostsInMyCluster(MQAddressList.java:467)
	at com.sun.enterprise.connectors.jms.system.MQAddressList.setupForCluster(MQAddressList.java:441)
	at com.sun.enterprise.connectors.jms.system.MQAddressList.setup(MQAddressList.java:139)
	at com.sun.enterprise.connectors.jms.system.JMSConfigListener.getBrokerList(JMSConfigListener.java:261)
	at com.sun.enterprise.connectors.jms.system.JMSConfigListener.changed(JMSConfigListener.java:230)
	at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:400)
	at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:390)
	at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:280)
	at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:278)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)]]

[2016-12-28T15:18:09.877+0900] [glassfish 4.1] [INFO] [] [javax.enterprise.resource.jms] [tid: _ThreadID=149 _ThreadName=pool-22-thread-1] [[
  set.cluster.brokerlist.success]]
Comment by David Zhao [ 28/Dec/16 ]

create-local-instance will create EMBEDDED jms service on the local instance by default. So please try the following sequence:

create-cluster
create all instances by create-local-instance.
delete-jms-host
create-jms-host
asadmin set cluster7.jms-service.type=REMOTE
...
... send/receive jms messages.
...
delete-local-instance if necessary

Comment by yama0428 [ 28/Dec/16 ]
D:\glassfish4\glassfish\bin>asadmin create-cluster cluster7
Command create-cluster executed successfully.

D:\glassfish4\glassfish\bin>asadmin create-local-instance --cluster cluster7 clu
ster7-1
Rendezvoused with DAS on localhost:4848.
Using DAS host localhost and port 4848 from existing das.properties for node
localhost-domain1. To use a different DAS, create a new node using create-node-s
sh or
create-node-config. Create the instance with the new node and correct
host and port:
asadmin --host das_host --port das_port create-local-instance --node node_name i
nstance_name.
Port Assignments for server instance cluster7-1:
OSGI_SHELL_TELNET_PORT=26668
JAVA_DEBUGGER_PORT=29011
JMS_PROVIDER_PORT=27677
HTTP_LISTENER_PORT=28082
IIOP_SSL_LISTENER_PORT=23822
ASADMIN_LISTENER_PORT=24850
IIOP_SSL_MUTUALAUTH_PORT=23922
JMX_SYSTEM_CONNECTOR_PORT=28688
HTTP_SSL_LISTENER_PORT=28183
IIOP_LISTENER_PORT=23702
Command create-local-instance executed successfully.

D:\glassfish4\glassfish\bin>asadmin create-local-instance --cluster cluster7 clu
ster7-2
Rendezvoused with DAS on localhost:4848.
Using DAS host localhost and port 4848 from existing das.properties for node
localhost-domain1. To use a different DAS, create a new node using create-node-s
sh or
create-node-config. Create the instance with the new node and correct
host and port:
asadmin --host das_host --port das_port create-local-instance --node node_name i
nstance_name.
Port Assignments for server instance cluster7-2:
OSGI_SHELL_TELNET_PORT=26669
JAVA_DEBUGGER_PORT=29012
JMS_PROVIDER_PORT=27678
HTTP_LISTENER_PORT=28083
IIOP_SSL_LISTENER_PORT=23823
ASADMIN_LISTENER_PORT=24851
IIOP_SSL_MUTUALAUTH_PORT=23923
JMX_SYSTEM_CONNECTOR_PORT=28689
HTTP_SSL_LISTENER_PORT=28184
IIOP_LISTENER_PORT=23703
Command create-local-instance executed successfully.

D:\glassfish4\glassfish\bin>asadmin delete-jms-host --target cluster7 default_JM
S_host
Command delete-jms-host executed successfully.

D:\glassfish4\glassfish\bin>asadmin create-jms-host --target cluster7 --mqhost l
ocalhost --mqport 7676 --mquser admin --mqpassword admin myhost
Jms Host myhost created.
Command create-jms-host executed successfully.

D:\glassfish4\glassfish\bin>asadmin set cluster7.jms-service.type=REMOTE
cluster7.jms-service.type=REMOTE
Command set executed successfully.

D:\glassfish4\glassfish\bin>asadmin start-cluster cluster7
Command start-cluster executed successfully.

D:\glassfish4\glassfish\bin>asadmin stop-local-instance cluster7-2
Waiting for the instance to stop .
Command stop-local-instance executed successfully.

D:\glassfish4\glassfish\bin>asadmin delete-local-instance cluster7-2
Command delete-local-instance executed successfully.
[2016-12-29T01:52:08.750+0900] [glassfish 4.1] [SEVERE] [] [] [tid: _ThreadID=75 _ThreadName=Thread-9] [timeMillis: 1482943928750] [levelValue: 1000] [[
  java.lang.NullPointerException
	at com.sun.enterprise.connectors.jms.system.MQAddressList.createJmsHostCopy(MQAddressList.java:660)
	at com.sun.enterprise.connectors.jms.system.MQAddressList.getResolvedJmsHost(MQAddressList.java:644)
	at com.sun.enterprise.connectors.jms.system.MQAddressList.getResolvedLocalJmsHostsInMyCluster(MQAddressList.java:467)
	at com.sun.enterprise.connectors.jms.system.MQAddressList.setupForCluster(MQAddressList.java:441)
	at com.sun.enterprise.connectors.jms.system.MQAddressList.setup(MQAddressList.java:139)
	at com.sun.enterprise.connectors.jms.system.JMSConfigListener.getBrokerList(JMSConfigListener.java:261)
	at com.sun.enterprise.connectors.jms.system.JMSConfigListener.changed(JMSConfigListener.java:230)
	at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:400)
	at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:390)
	at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:280)
	at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:278)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)]]

[2016-12-29T01:52:08.751+0900] [glassfish 4.1] [INFO] [] [javax.enterprise.resource.jms] [tid: _ThreadID=75 _ThreadName=pool-12-thread-1] [timeMillis: 1482943928751] [levelValue: 800] [[
  set.cluster.brokerlist.success]]




[GLASSFISH-21095] No active contexts for scope type javax.transaction.TransactionScoped Created: 24/Jun/14  Updated: 20/Dec/16  Resolved: 30/Jun/14

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.1_dev
Fix Version/s: 4.1_dev

Type: Bug Priority: Major
Reporter: David Delabassee Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Java 1.8.0_05-b13 - OS X (Mavericks)


Tags: 4_0_1-mustfix

 Description   

The jms/websimplemessage sample of the Java EE 7 tutorial works fine on GF4.0 (b89) but throws the following exception on GF4.0.1 : WELD-001303: No active contexts for scope type javax.transaction.TransactionScoped

https://svn.java.net/svn/javaeetutorial~svn/branches/javaee-tutorial-7.0.4/examples/jms/websimplemessage/

Here is the stack trace. Initializing the messageText value makes no difference.

Severe: Error Rendering View[/sender.xhtml]
javax.el.ELException: /sender.xhtml @30,38 value="#

{senderBean.messageText}

": org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active contexts for scope type javax.transaction.TransactionScoped
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIOutput.getValue(UIOutput.java:174)
at javax.faces.component.UIInput.getValue(UIInput.java:291)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1864)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1857)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1860)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1860)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:461)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:744)
Caused by: javax.el.ELException: org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active contexts for scope type javax.transaction.TransactionScoped
at javax.el.BeanELResolver.getValue(BeanELResolver.java:368)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstValue.getValue(AstValue.java:140)
at com.sun.el.parser.AstValue.getValue(AstValue.java:204)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
... 49 more
Caused by: org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active contexts for scope type javax.transaction.TransactionScoped
at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:687)
at org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:825)
at org.jboss.weld.injection.ParameterInjectionPointImpl.getValueToInject(ParameterInjectionPointImpl.java:76)
at org.jboss.weld.injection.ConstructorInjectionPoint.getParameterValues(ConstructorInjectionPoint.java:141)
at org.jboss.weld.injection.ConstructorInjectionPoint.newInstance(ConstructorInjectionPoint.java:71)
at org.jboss.weld.injection.producer.AbstractInstantiator.newInstance(AbstractInstantiator.java:28)
at org.jboss.weld.injection.producer.BasicInjectionTarget.produce(BasicInjectionTarget.java:104)
at org.jboss.weld.injection.producer.BeanInjectionTarget.produce(BeanInjectionTarget.java:190)
at org.glassfish.jms.injection.JMSCDIExtension$LocalPassivationCapableBean.create(JMSCDIExtension.java:208)
at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:69)
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:740)
at org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:831)
at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:92)
at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:364)
at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:375)
at org.jboss.weld.injection.producer.DefaultInjector$1.proceed(DefaultInjector.java:71)
at org.glassfish.weld.services.InjectionServicesImpl.aroundInject(InjectionServicesImpl.java:150)
at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:46)
at org.jboss.weld.injection.producer.DefaultInjector.inject(DefaultInjector.java:68)
at org.jboss.weld.injection.producer.ResourceInjector.access$101(ResourceInjector.java:46)
at org.jboss.weld.injection.producer.ResourceInjector$1.proceed(ResourceInjector.java:70)
at org.glassfish.weld.services.InjectionServicesImpl.aroundInject(InjectionServicesImpl.java:150)
at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:46)
at org.jboss.weld.injection.producer.ResourceInjector.inject(ResourceInjector.java:65)
at org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:109)
at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:150)
at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:96)
at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:98)
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:78)
at org.jboss.weldeetutorial.websimplemessage.SenderBean$Proxy$_$$_WeldClientProxy.getMessageText(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:363)
... 56 more

Warning: StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception
org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active contexts for scope type javax.transaction.TransactionScoped
at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:687)
at org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:825)
at org.jboss.weld.injection.ParameterInjectionPointImpl.getValueToInject(ParameterInjectionPointImpl.java:76)
at org.jboss.weld.injection.ConstructorInjectionPoint.getParameterValues(ConstructorInjectionPoint.java:141)
at org.jboss.weld.injection.ConstructorInjectionPoint.newInstance(ConstructorInjectionPoint.java:71)
at org.jboss.weld.injection.producer.AbstractInstantiator.newInstance(AbstractInstantiator.java:28)
at org.jboss.weld.injection.producer.BasicInjectionTarget.produce(BasicInjectionTarget.java:104)
at org.jboss.weld.injection.producer.BeanInjectionTarget.produce(BeanInjectionTarget.java:190)
at org.glassfish.jms.injection.JMSCDIExtension$LocalPassivationCapableBean.create(JMSCDIExtension.java:208)
at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:69)
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:740)
at org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:831)
at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:92)
at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:364)
at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:375)
at org.jboss.weld.injection.producer.DefaultInjector$1.proceed(DefaultInjector.java:71)
at org.glassfish.weld.services.InjectionServicesImpl.aroundInject(InjectionServicesImpl.java:150)
at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:46)
at org.jboss.weld.injection.producer.DefaultInjector.inject(DefaultInjector.java:68)
at org.jboss.weld.injection.producer.ResourceInjector.access$101(ResourceInjector.java:46)
at org.jboss.weld.injection.producer.ResourceInjector$1.proceed(ResourceInjector.java:70)
at org.glassfish.weld.services.InjectionServicesImpl.aroundInject(InjectionServicesImpl.java:150)
at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:46)
at org.jboss.weld.injection.producer.ResourceInjector.inject(ResourceInjector.java:65)
at org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:109)
at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:150)
at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:96)
at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:98)
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:78)
at org.jboss.weldeetutorial.websimplemessage.SenderBean$Proxy$_$$_WeldClientProxy.getMessageText(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:363)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstValue.getValue(AstValue.java:140)
at com.sun.el.parser.AstValue.getValue(AstValue.java:204)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIOutput.getValue(UIOutput.java:174)
at javax.faces.component.UIInput.getValue(UIInput.java:291)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1864)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1857)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1860)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1860)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:461)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
at java.lang.Thread.run(Thread.java:744)



 Comments   
Comment by jjsnyder83 [ 25/Jun/14 ]

This is a bug in Weld. I've sent them an email describing the problem.

Comment by jjsnyder83 [ 27/Jun/14 ]

It turns out that this is not a bug but a change in Weld behavior. A client proxy for a normal scoped bean being initialized lazily is not standardized (see also
https://issues.jboss.org/browse/CDI-125). So applications/extensions should not rely on it. Since 2.2.1.Final weld has introduced some optimizations (see also
https://issues.jboss.org/browse/WELD-1659, it's based on the spec, section "6.5.5. Injectable references").

Basically, Weld does not inject a client proxy if the bean upon which to perform injection is @RequestScoped or if both this bean and the bean to be injected are @ApplicationScoped. In this case, SenderBean is @RequestScoped and therefore Weld injects a contextual instance.

InjectableJMSContext could use javax.enterprise.inject.Instance<T> to obtain an instance of TransactedJMSContextManager dynamically.

Comment by David Zhao [ 30/Jun/14 ]

This is fixed by change# 63408

Comment by David Delabassee [ 30/Jun/14 ]

Tested on b208, the sample works now as expected.





[GLASSFISH-18423] JMS: Inspect JDK 7 getMethods()/getDeclaredMethods() usage Created: 28/Feb/12  Updated: 20/Dec/16  Resolved: 29/Feb/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Task Priority: Major
Reporter: Joe Di Pol Assignee: David Zhao
Resolution: Works as designed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Recent JDK 7 releases have altered the order of methods returned by the
Class.getMethods() and Class.getDeclaredMethods() calls. The order is
no longer stable and can change from one JVM run to the next.

This caused a number of sporadic bugs to appear during 3.1.2 development
when running with JDK 7. Those have been fixed, but further inspection
of the source has found a number of cases where we use getMethods() and
getDeclaredMethods().

Each of these cases should be visually inspected to see if the code is
making any assumptions on the order of methods returned by get*Methods().
In particular it should handle the case of multiple methods having the
same name.

For more details on what to look for and how to fix it see this document:

https://wikis.oracle.com/display/GlassFish/Method+Ordering+from+Class.getMethods

Please inspect the following files for their use of getMethods() /
getDeclaredMethods() to ensure the code is not making any assumptions
with respect to the order of methods returned. Create bugs for
any issues that need to be fixed and link them to this task. Once you
have completed inspection update this task with status and close it.

JMS admin
    JMSDestination.java


 Comments   
Comment by David Zhao [ 29/Feb/12 ]

In JMSDestination class, it invokes MQ's ResourceAdapter.getJMXConnectorEnv() and ResourceAdapter.getJMXServiceURLList() by feflection. The methods are matched by name during going through all methods returned by ResourceAdapter.class.getMethods(). It would be still safe with JDK7 for the methods are not overloaded in ResourceAdaper - only the expected methods can be matched and it is order irrelevant for now.





[GLASSFISH-18510] [REGRESSION]Failed to receive messages after changing master broker and restarting cluster Created: 14/Mar/12  Updated: 20/Dec/16  Resolved: 28/Mar/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: sonialiu Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

solaris10/jdk1.7.0


Attachments: File log.txt.instance1     File server.log.domain1     File server.log.instance1    
Tags: 3x_regression

 Description   

build: GF4.0 promoted build27

I am doing regression test by running existing SQE jms test against GF4.0 b27, I was noticed a test failure in appserver-sqe/pe/jms/jmscluster/test2. This is a regression bug since the same test passed against GF v3.1.2. Here is the test description:

The test does the following

  • creates a Glassfish Cluster (gfjmscluster1) with three instances (gfjmsinstance1, gfjmsinstance2, gfjmsinstance3)
    with MQ Conventional Cluster with a Master Broker.
  • deploys an MDB that listens on a Queue Destination.
  • send a message to the MDB
  • Verify MDB replies the msg
  • Change the Master Broker in the cluster to a different Broker
  • Verify that the Master Broker Change
  • send a message to MDB
  • Verify that the MDB receives the msg
  • Once again Change the Master Broker in the cluster to a different Broker
  • Stop/Restart the cluster
  • Verify the Master Broker Change
  • send a message to MDB
  • Verify that the MDB receives the msg

Here are the steps to reproduce the bug:

1. Install GF4.0, start domain domain1
2. Checkout SQE workspace cvs co appserver-sqe/bootstrap.xml
(CVSROOT: :pserver:<your cvs user name>@sunsw.us.oracle.com:/m/jws
cd appserver-sqe
ant -f bootstrap.xml co-jms
3.set env. variables
S1AS_HOME <GF install dir>, for example: /export/sonia/v4/glassfish3/glassfish
SPS_HOME <appserver-sqe>, for example: /export/sonia/appserver-sqe
ANT_HOME <ant location>, for example: /export/sonia/ant-1.7.1
JAVA_HOME <java location>, for example: /export/sonia/jdk1.7.0
4. cd appserver-sqe/pe/jms/jmscluster/test2, run "ant clean build setup deploy run", one test failed:

[exec] Start the Test : jmscluster-test2-AppClient3
[exec] Mar 14, 2012 12:50:50 PM org.hibernate.validator.util.Version <clinit>
[exec] INFO: Hibernate Validator 4.1.0.Final
[exec] Mar 14, 2012 12:50:50 PM org.hibernate.validator.engine.resolver.DefaultTraversableResolver detectJPA
[exec] INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
[exec] Mar 14, 2012 12:50:50 PM com.sun.messaging.jms.ra.ResourceAdapter start
[exec] INFO: MQJMSRA_RA1101: GlassFish MQ JMS Resource Adapter: Version: 4.6 (Build 3-c) Compile: Fri May 20 13:52:27 PDT 2011
[exec] Mar 14, 2012 12:50:50 PM com.sun.messaging.jms.ra.ResourceAdapter start
[exec] INFO: MQJMSRA_RA1101: GlassFish MQ JMS Resource Adapter starting: broker is REMOTE, connection mode is TCP
[exec] Mar 14, 2012 12:50:50 PM com.sun.messaging.jms.ra.ResourceAdapter start
[exec] INFO: MQJMSRA_RA1101: GlassFish MQ JMS Resource Adapter Started:REMOTE
[exec] jmscluster-test2-AppClient3 setup completed
[exec] NULL Message Received
[exec] Generating report at /export/sonia/appserver-sqe/test_results.xml
[exec]
[exec] - jmscluster-test2-AppClient3: FAIL -
[exec] -----------------------------------------
[exec] Total PASS: 0
[exec] Total FAIL: 1
[exec] Total DNR: 0
[exec] -----------------------------------------
[exec] Mar 14, 2012 12:50:59 PM com.sun.messaging.jms.ra.ResourceAdapter stop
[exec] INFO: MQJMSRA_RA1101: GlassFish MQ JMS Resource Adapter stopping...
[exec] Mar 14, 2012 12:50:59 PM com.sun.messaging.jms.ra.ResourceAdapter stop
[exec] INFO: MQJMSRA_RA1101: GlassFish MQ JMS Resource Adapter stopped.
[exec] Mar 14, 2012 12:50:59 PM com.sun.enterprise.connectors.service.ResourceAdapterAdminServiceImpl sendStopToResourceAdapter
[exec] INFO: RAR7094: jmsra shutdown successful.

During the test execution, I was noticed that it took very long time to restart cluster though it was successful started. I saw some exceptions in the cluster instance server.log (more exceptions in the attached server.log.instance1 file):
[#|2012-03-14T12:50:07.180-0700|SEVERE|44.0|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=1;_ThreadName=Thread-2;|com.sun.messaging.jmq.jmsclient.ConnectException: [C4003]: Error occurred on connection creation [localhost:1117,mq://localhost:1117/,mq://localhost:3337/,mq://localhost:2227/].
at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnectionNew(ConnectionInitiator.java:316)
at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:214)
at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:164)
at com.sun.messaging.jmq.jmsclient.ProtocolHandler.init(ProtocolHandler.java:843)
at com.sun.messaging.jmq.jmsclient.ProtocolHandler.<init>(ProtocolHandler.java:1562)
at com.sun.messaging.jmq.jmsclient.ConnectionImpl.openConnection(ConnectionImpl.java:2383)
at com.sun.messaging.jmq.jmsclient.ConnectionImpl.init(ConnectionImpl.java:1064)
at com.sun.messaging.jmq.jmsclient.ConnectionImpl.<init>(ConnectionImpl.java:442)
at com.sun.messaging.jmq.jmsclient.UnifiedConnectionImpl.<init>(UnifiedConnectionImpl.java:66)
at com.sun.messaging.jmq.jmsclient.XAConnectionImpl.<init>(XAConnectionImpl.java:64)
at com.sun.messaging.XAConnectionFactory.createXAConnection(XAConnectionFactory.java:97)
at com.sun.messaging.XAConnectionFactory.createXAConnection(XAConnectionFactory.java:75)
at com.sun.messaging.jms.ra.EndpointConsumer.createRemoteMessageConsumer(EndpointConsumer.java:456)
at com.sun.messaging.jms.ra.EndpointConsumer._init(EndpointConsumer.java:308)
at com.sun.messaging.jms.ra.EndpointConsumer.<init>(EndpointConsumer.java:185)
at com.sun.messaging.jms.ra.ResourceAdapter.endpointActivation(ResourceAdapter.java:478)
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:225)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:208)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:113)
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:228)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:294)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:102)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:186)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:264)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:508)
at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:388)
at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:224)
at com.sun.hk2.component.AbstractCreatorImpl.inject(AbstractCreatorImpl.java:132)
at com.sun.hk2.component.ConstructorCreator.initialize(ConstructorCreator.java:117)
at com.sun.hk2.component.AbstractCreatorImpl.get(AbstractCreatorImpl.java:84)
at com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:67)
at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:141)
at com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:135)
at com.sun.enterprise.v3.server.StartupRunLevelBridge.activate(StartupRunLevelBridge.java:93)
at com.sun.enterprise.v3.server.RunLevelBridge.postConstruct(RunLevelBridge.java:110)
at com.sun.enterprise.v3.server.StartupRunLevelBridge.postConstruct(StartupRunLevelBridge.java:65)
at com.sun.hk2.component.AbstractCreatorImpl.inject(AbstractCreatorImpl.java:132)
at com.sun.hk2.component.ConstructorCreator.initialize(ConstructorCreator.java:117)
at com.sun.hk2.component.AbstractCreatorImpl.get(AbstractCreatorImpl.java:84)
at com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:67)
at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:141)
at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:141)
at com.sun.hk2.component.RunLevelInhabitant.get(RunLevelInhabitant.java:110)
at com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:135)
at com.sun.enterprise.v3.server.AppServerStartup$StartupInhabitantActivator.activate(AppServerStartup.java:526)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$Worker.activateRunLevel(DefaultRunLevelService.java:1106)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$Worker.upActiveRecorder(DefaultRunLevelService.java:1060)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$Worker.run(DefaultRunLevelService.java:1026)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$SyncProceedToOp.proceedTo(DefaultRunLevelService.java:1256)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService.proceedTo(DefaultRunLevelService.java:797)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService.proceedTo(DefaultRunLevelService.java:759)
at com.sun.enterprise.v3.server.AppServerStartup.proceedTo(AppServerStartup.java:360)
at com.sun.enterprise.v3.server.AppServerStartup.run(AppServerStartup.java:254)
at com.sun.enterprise.v3.server.AppServerStartup.doStart(AppServerStartup.java:172)
at com.sun.enterprise.v3.server.AppServerStartup.start(AppServerStartup.java:163)
at com.sun.enterprise.glassfish.bootstrap.GlassFishImpl.start(GlassFishImpl.java:79)
at com.sun.enterprise.glassfish.bootstrap.GlassFishDecorator.start(GlassFishDecorator.java:63)
at com.sun.enterprise.glassfish.bootstrap.osgi.OSGiGlassFishImpl.start(OSGiGlassFishImpl.java:71)
at com.sun.enterprise.glassfish.bootstrap.GlassFishMain$Launcher.launch(GlassFishMain.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.enterprise.glassfish.bootstrap.GlassFishMain.main(GlassFishMain.java:97)
at com.sun.enterprise.glassfish.bootstrap.ASMain.main(ASMain.java:55)

            1. Connect exception for : mq://localhost:1117/jms
              com.sun.messaging.jms.JMSException: [C4003]: Error occurred on connection creation [localhost:1117]. - cause: java.net.ConnectException: Connection refused
              at com.sun.messaging.jmq.jmsclient.ExceptionHandler.throwConnectionException(ExceptionHandler.java:280)
              at com.sun.messaging.jmq.jmsclient.ExceptionHandler.handleConnectException(ExceptionHandler.java:226)
              at com.sun.messaging.jmq.jmsclient.PortMapperClient.readBrokerPorts(PortMapperClient.java:247)
              at com.sun.messaging.jmq.jmsclient.PortMapperClient.init(PortMapperClient.java:156)
              at com.sun.messaging.jmq.jmsclient.PortMapperClient.<init>(PortMapperClient.java:98)
              at com.sun.messaging.jmq.jmsclient.protocol.tcp.TCPConnectionHandler.<init>(TCPConnectionHandler.java:171)
              at com.sun.messaging.jmq.jmsclient.protocol.tcp.TCPStreamHandler.openConnection(TCPStreamHandler.java:141)
              at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:785)
              at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnectionNew(ConnectionInitiator.java:260)
              at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:214)
              at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:164)
              at com.sun.messaging.jmq.jmsclient.ProtocolHandler.init(ProtocolHandler.java:843)
              at com.sun.messaging.jmq.jmsclient.ProtocolHandler.<init>(ProtocolHandler.java:1562)
              at com.sun.messaging.jmq.jmsclient.ConnectionImpl.openConnection(ConnectionImpl.java:2383)
              at com.sun.messaging.jmq.jmsclient.ConnectionImpl.init(ConnectionImpl.java:1064)
              at com.sun.messaging.jmq.jmsclient.ConnectionImpl.<init>(ConnectionImpl.java:442)
              at com.sun.messaging.jmq.jmsclient.UnifiedConnectionImpl.<init>(UnifiedConnectionImpl.java:66)
              at com.sun.messaging.jmq.jmsclient.XAConnectionImpl.<init>(XAConnectionImpl.java:64)
              at com.sun.messaging.XAConnectionFactory.createXAConnection(XAConnectionFactory.java:97)
              at com.sun.messaging.XAConnectionFactory.createXAConnection(XAConnectionFactory.java:75)
              at com.sun.messaging.jms.ra.E|#]

[#|2012-03-14T12:50:07.184-0700|SEVERE|44.0|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=1;_ThreadName=Thread-2;|ndpointConsumer.createRemoteMessageConsumer(EndpointConsumer.java:456)
at com.sun.messaging.jms.ra.EndpointConsumer._init(EndpointConsumer.java:308)
at com.sun.messaging.jms.ra.EndpointConsumer.<init>(EndpointConsumer.java:185)
at com.sun.messaging.jms.ra.ResourceAdapter.endpointActivation(ResourceAdapter.java:478)
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:225)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:208)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:113)
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:228)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:294)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:102)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:186)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:264)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:508)
at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:388)
at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:224)
at com.sun.hk2.component.AbstractCreatorImpl.inject(AbstractCreatorImpl.java:132)
at com.sun.hk2.component.ConstructorCreator.initialize(ConstructorCreator.java:117)
at com.sun.hk2.component.AbstractCreatorImpl.get(AbstractCreatorImpl.java:84)
at com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:67)
at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:141)
at com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:135)
at com.sun.enterprise.v3.server.StartupRunLevelBridge.activate(StartupRunLevelBridge.java:93)
at com.sun.enterprise.v3.server.RunLevelBridge.postConstruct(RunLevelBridge.java:110)
at com.sun.enterprise.v3.server.StartupRunLevelBridge.postConstruct(StartupRunLevelBridge.java:65)
at com.sun.hk2.component.AbstractCreatorImpl.inject(AbstractCreatorImpl.java:132)
at com.sun.hk2.component.ConstructorCreator.initialize(ConstructorCreator.java:117)
at com.sun.hk2.component.AbstractCreatorImpl.get(AbstractCreatorImpl.java:84)
at com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:67)
at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:141)
at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:141)
at com.sun.hk2.component.RunLevelInhabitant.get(RunLevelInhabitant.java:110)
at com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:135)
at com.sun.enterprise.v3.server.AppServerStartup$StartupInhabitantActivator.activate(AppServerStartup.java:526)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$Worker.activateRunLevel(DefaultRunLevelService.java:1106)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$Worker.upActiveRecorder(DefaultRunLevelService.java:1060)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$Worker.run(DefaultRunLevelService.java:1026)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$SyncProceedToOp.proceedTo(DefaultRunLevelService.java:1256)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService.proceedTo(DefaultRunLevelService.java:797)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService.proceedTo(DefaultRunLevelService.java:759)
at com.sun.enterprise.v3.server.AppServerStartup.proceedTo(AppServerStartup.java:360)
at com.sun.enterprise.v3.server.AppServerStartup.run(AppServerStartup.java:254)
at com.sun.enterprise.v3.server.AppServerStartup.doStart(AppServerStartup.java:172)
at com.sun.enterprise.v3.server.AppServerStartup.start(AppServerStartup.java:163)
at com.sun.enterprise.glassfish.bootstrap.GlassFishImpl.start(GlassFishImpl.java:79)
at com.sun.enterprise.glassfish.bootstrap.GlassFishDecorator.start(GlassFishDecorator.java:63)
at com.sun.enterprise.glassfish.bootstrap.osgi.OSGiGlassFishImpl.start(OSGiGlassFishImpl.java:71)
at com.sun.enterprise.glassfish.bootstrap.GlassFishMain$Launcher.launch(GlassFishMain.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.enterprise.glassfish.bootstrap.GlassFishMain.main(GlassFishMain.java:97)
at com.sun.enterprise.glassfish.bootstrap.ASMain.main(ASMain.java:55)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:337)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:198)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
at java.net.Socket.connect(Socket.java:578)
at java.net.Socket.connect(Socket.java:527)
at java.net.Socket.<init>(Socket.java:424)
at java.net.Socket.<init>(Socket.java:207)
at com.sun.messaging.jmq.jmsclient.PortMapperClient.makeSocketWithTimeout(PortMapperClient.java:274)
at com.sun.messaging.jmq.jmsclient.PortMapperClient.readBrokerPorts(PortMapperClient.java:226)
... 70 more

            1. Connect exception for : mq://localhost:1117/jms

-------------- -----------

[#|2012-03-14T12:50:07.667-0700|SEVERE|44.0|javax.enterprise.system.container.ejb.mdb.com.sun.ejb.containers|_ThreadID=1;_ThreadName=Thread-2;|MDB00017: [MessageQueueBean]: Exception in creating message-driven bean container: [java.lang.Exception]|#]

[#|2012-03-14T12:50:07.668-0700|SEVERE|44.0|javax.enterprise.system.container.ejb.mdb.com.sun.ejb.containers|_ThreadID=1;_ThreadName=Thread-2;|java.lang.Exception
java.lang.Exception
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:233)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:208)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:113)
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:228)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:294)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:102)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:186)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:264)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:508)
at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:388)
at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:224)
at com.sun.hk2.component.AbstractCreatorImpl.inject(AbstractCreatorImpl.java:132)
at com.sun.hk2.component.ConstructorCreator.initialize(ConstructorCreator.java:117)
at com.sun.hk2.component.AbstractCreatorImpl.get(AbstractCreatorImpl.java:84)
at com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:67)
at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:141)
at com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:135)
at com.sun.enterprise.v3.server.StartupRunLevelBridge.activate(StartupRunLevelBridge.java:93)
at com.sun.enterprise.v3.server.RunLevelBridge.postConstruct(RunLevelBridge.java:110)
at com.sun.enterprise.v3.server.StartupRunLevelBridge.postConstruct(StartupRunLevelBridge.java:65)
at com.sun.hk2.component.AbstractCreatorImpl.inject(AbstractCreatorImpl.java:132)
at com.sun.hk2.component.ConstructorCreator.initialize(ConstructorCreator.java:117)
at com.sun.hk2.component.AbstractCreatorImpl.get(AbstractCreatorImpl.java:84)
at com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:67)
at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:141)
at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:141)
at com.sun.hk2.component.RunLevelInhabitant.get(RunLevelInhabitant.java:110)
at com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:135)
at com.sun.enterprise.v3.server.AppServerStartup$StartupInhabitantActivator.activate(AppServerStartup.java:526)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$Worker.activateRunLevel(DefaultRunLevelService.java:1106)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$Worker.upActiveRecorder(DefaultRunLevelService.java:1060)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$Worker.run(DefaultRunLevelService.java:1026)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$SyncProceedToOp.proceedTo(DefaultRunLevelService.java:1256)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService.proceedTo(DefaultRunLevelService.java:797)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService.proceedTo(DefaultRunLevelService.java:759)
at com.sun.enterprise.v3.server.AppServerStartup.proceedTo(AppServerStartup.java:360)
at com.sun.enterprise.v3.server.AppServerStartup.run(AppServerStartup.java:254)
at com.sun.enterprise.v3.server.AppServerStartup.doStart(AppServerStartup.java:172)
at com.sun.enterprise.v3.server.AppServerStartup.start(AppServerStartup.java:163)
at com.sun.enterprise.glassfish.bootstrap.GlassFishImpl.start(GlassFishImpl.java:79)
at com.sun.enterprise.glassfish.bootstrap.GlassFishDecorator.start(GlassFishDecorator.java:63)
at com.sun.enterprise.glassfish.bootstrap.osgi.OSGiGlassFishImpl.start(OSGiGlassFishImpl.java:71)
at com.sun.enterprise.glassfish.bootstrap.GlassFishMain$Launcher.launch(GlassFishMain.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.enterprise.glassfish.bootstrap.GlassFishMain.main(GlassFishMain.java:97)
at com.sun.enterprise.glassfish.bootstrap.ASMain.main(ASMain.java:55)
Caused by: javax.resource.NotSupportedException: MQRA:EC:Error:createRemoteMessageConsumer failed:aborting due to:[C4003]: Error occurred on connection creation [localhost:1117,mq://localhost:1117/,mq://localhost:3337/,mq://localhost:2227/].
at com.sun.messaging.jms.ra.EndpointConsumer.createRemoteMessageConsumer(EndpointConsumer.java:478)
at com.sun.messaging.jms.ra.EndpointConsumer._init(EndpointConsumer.java:308)
at com.sun.messaging.jms.ra.EndpointConsumer.<init>(EndpointConsumer.java:185)
at com.sun.messaging.jms.ra.ResourceAdapter.endpointActivation(ResourceAdapter.java:478)
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:225)
... 48 more
Caused by: com.sun.messaging.jmq.jmsclient.ConnectException: [C4003]: Error occurred on connection creation [localhost:1117,mq://localhost:1117/,mq://localhost:3337/,mq://localhost:2227/].
at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnectionNew(ConnectionInitiator.java:316)
at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:214)
at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:164)
at com.sun.messaging.jmq.jmsclient.ProtocolHandler.init(ProtocolHandler.java:843)
at com.sun.messaging.jmq.jmsclient.ProtocolHandler.<init>(ProtocolHandler.java:1562)
at com.sun.messaging.jmq.jmsclient.ConnectionImpl.openConnection(ConnectionImpl.java:2383)
at com.sun.messaging.jmq.jmsclient.ConnectionImpl.init(ConnectionImpl.java:1064)
at com.sun.messaging.jmq.jmsclient.ConnectionImpl.<init>(ConnectionImpl.java:442)
at com.sun.messaging.jmq.jmsclient.UnifiedConnectionImpl.<init>(UnifiedConnectionImpl.java:66)
at com.sun.messaging.jmq.jmsclient.XAConnectionImpl.<init>(XAConnectionImpl.java:64)
at com.sun.messaging.XAConnectionFactory.createXAConnection(XAConnectionFactory.java:97)
at com.sun.messaging.XAConnectionFactory.createXAConnection(XAConnectionFactory.java:75)
at com.sun.messaging.jms.ra.EndpointConsumer.createRemoteMessageConsumer(EndpointConsumer.java:456)
... 52 more

#]

[#|2012-03-14T12:50:07.680-0700|SEVERE|44.0|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=1;_ThreadName=Thread-2;|Exception while invoking class org.glassfish.ejb.startup.EjbDeployer load method
java.lang.RuntimeException: EJB Container initialization error
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:240)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:294)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:102)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:186)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:264)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:508)
at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:388)
at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:224)
at com.sun.hk2.component.AbstractCreatorImpl.inject(AbstractCreatorImpl.java:132)
at com.sun.hk2.component.ConstructorCreator.initialize(ConstructorCreator.java:117)
at com.sun.hk2.component.AbstractCreatorImpl.get(AbstractCreatorImpl.java:84)
at com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:67)
at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:141)
at com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:135)
at com.sun.enterprise.v3.server.StartupRunLevelBridge.activate(StartupRunLevelBridge.java:93)
at com.sun.enterprise.v3.server.RunLevelBridge.postConstruct(RunLevelBridge.java:110)
at com.sun.enterprise.v3.server.StartupRunLevelBridge.postConstruct(StartupRunLevelBridge.java:65)
at com.sun.hk2.component.AbstractCreatorImpl.inject(AbstractCreatorImpl.java:132)
at com.sun.hk2.component.ConstructorCreator.initialize(ConstructorCreator.java:117)
at com.sun.hk2.component.AbstractCreatorImpl.get(AbstractCreatorImpl.java:84)
at com.sun.hk2.component.SingletonInhabitant.get(SingletonInhabitant.java:67)
at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:141)
at com.sun.hk2.component.EventPublishingInhabitant.get(EventPublishingInhabitant.java:141)
at com.sun.hk2.component.RunLevelInhabitant.get(RunLevelInhabitant.java:110)
at com.sun.hk2.component.AbstractInhabitantImpl.get(AbstractInhabitantImpl.java:135)
at com.sun.enterprise.v3.server.AppServerStartup$StartupInhabitantActivator.activate(AppServerStartup.java:526)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$Worker.activateRunLevel(DefaultRunLevelService.java:1106)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$Worker.upActiveRecorder(DefaultRunLevelService.java:1060)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$Worker.run(DefaultRunLevelService.java:1026)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService$SyncProceedToOp.proceedTo(DefaultRunLevelService.java:1256)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService.proceedTo(DefaultRunLevelService.java:797)
at org.jvnet.hk2.component.internal.runlevel.DefaultRunLevelService.proceedTo(DefaultRunLevelService.java:759)
at com.sun.enterprise.v3.server.AppServerStartup.proceedTo(AppServerStartup.java:360)
at com.sun.enterprise.v3.server.AppServerStartup.run(AppServerStartup.java:254)
at com.sun.enterprise.v3.server.AppServerStartup.doStart(AppServerStartup.java:172)
at com.sun.enterprise.v3.server.AppServerStartup.start(AppServerStartup.java:163)
at com.sun.enterprise.glassfish.bootstrap.GlassFishImpl.start(GlassFishImpl.java:79)
at com.sun.enterprise.glassfish.bootstrap.GlassFishDecorator.start(GlassFishDecorator.java:63)
at com.sun.enterprise.glassfish.bootstrap.osgi.OSGiGlassFishImpl.start(OSGiGlassFishImpl.java:71)
at com.sun.enterprise.glassfish.bootstrap.GlassFishMain$Launcher.launch(GlassFishMain.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.enterprise.glassfish.bootstrap.GlassFishMain.main(GlassFishMain.java:97)
at com.sun.enterprise.glassfish.bootstrap.ASMain.main(ASMain.java:55)
Caused by: java.lang.Exception
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:233)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:208)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:113)
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:228)
... 45 more
Caused by: javax.resource.NotSupportedException: MQRA:EC:Error:createRemoteMessageConsumer failed:aborting due to:[C4003]: Error occurred on connection creation [localhost:1117,mq://localhost:1117/,mq://localhost:3337/,mq://localhost:2227/].
at com.sun.messaging.jms.ra.EndpointConsumer.createRemoteMessageConsumer(EndpointConsumer.java:478)
at com.sun.messaging.jms.ra.EndpointConsumer._init(EndpointConsumer.java:308)
at com.sun.messaging.jms.ra.EndpointConsumer.<init>(EndpointConsumer.java:185)
at com.sun.messaging.jms.ra.ResourceAdapter.endpointActivation(ResourceAdapter.java:478)
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:225)
... 48 more
Caused by: com.sun.messaging.jmq.jmsclient.ConnectException: [C4003]: Error occurred on connection creation [localhost:1117,mq://localhost:1117/,mq://localhost:3337/,mq://localhost:2227/].
at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnectionNew(ConnectionInitiator.java:316)
at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:214)
at com.sun.messaging.jmq.jmsclient.ConnectionInitiator.createConnection(ConnectionInitiator.java:164)
at com.sun.messaging.jmq.jmsclient.ProtocolHandler.init(ProtocolHandler.java:843)
at com.sun.messaging.jmq.jmsclient.ProtocolHandler.<init>(ProtocolHandler.java:1562)
at com.sun.messaging.jmq.jmsclient.ConnectionImpl.openConnection(ConnectionImpl.java:2383)
at com.sun.messaging.jmq.jmsclient.ConnectionImpl.init(ConnectionImpl.java:1064)
at com.sun.messaging.jmq.jmsclient.ConnectionImpl.<init>(ConnectionImpl.java:442)
at com.sun.messaging.jmq.jmsclient.UnifiedConnectionImpl.<init>(UnifiedConnectionImpl.java:66)
at com.sun.messaging.jmq.jmsclient.XAConnectionImpl.<init>(XAConnectionImpl.java:64)
at com.sun.messaging.XAConnectionFactory.createXAConnection(XAConnectionFactory.java:97)
at com.sun.messaging.XAConnectionFactory.createXAConnection(XAConnectionFactory.java:75)
at com.sun.messaging.jms.ra.EndpointConsumer.createRemoteMessageConsumer(EndpointConsumer.java:456)
... 52 more

#]

In the broker log it displayed the following message:
[14/Mar/2012:12:44:14 PDT] WARNING [B2105]: Attempting to initiate a cluster connection to mq://10.133.185.9:3337/?instName=???&brokerSessionUID=null&ha=false failed: Connection refused
[14/Mar/2012:12:44:14 PDT] WARNING [B2105]: Attempting to initiate a cluster connection to mq://10.133.185.9:2227/?instName=???&brokerSessionUID=null&ha=false failed: Connection refused
[14/Mar/2012:12:44:14 PDT] [B1039]: Broker "gfjmscluster1gfjmsinstance1@jed-asqe-2:1117" ready.
[14/Mar/2012:12:45:14 PDT] WARNING [B2180]: Still trying to connect to the master broker mq://10.133.185.9:3337/?instName=???&brokerSessionUID=null&ha=false. Client connections will have restricted JMS service until the master broker is ready.
[14/Mar/2012:12:47:34 PDT] WARNING [B2105]: Attempting to initiate a cluster connection to mq://10.133.185.9:3337/?instName=???&brokerSessionUID=null&ha=false failed: Connection refused
[14/Mar/2012:12:47:34 PDT] WARNING [B2105]: Attempting to initiate a cluster connection to mq://10.133.185.9:2227/?instName=???&brokerSessionUID=null&ha=false failed: Connection refused
[14/Mar/2012:12:48:14 PDT] WARNING [B2180]: Still trying to connect to the master broker mq://10.133.185.9:3337/?instName=???&brokerSessionUID=null&ha=false. Client connections will have restricted JMS service until the master broker is ready.
[14/Mar/2012:12:50:09 PDT] [B1251]: Closing cluster connection with mq://10.133.185.9:2227/?instName=gfjmscluster1gfjmsinstance2&brokerSessionUID=593971654969893120&ha=false. Waiting for master broker mq://10.133.185.9:3337/?instName=???&brokerSessionUID=null&ha=false ...
[14/Mar/2012:12:50:09 PDT] WARNING :

5. I did some debugging, if I removed the following targets in the "run" target(That means if we don't restart the cluster after changing master broker), the test passed against GF4.0, no exceptions in the server.log.
antcall target="jms-stop-cluster" />
antcall target="jms-start-cluster"/>

-----------------------------------
Attached domain1 server.log, instance1 server.log and instance1 broker log.



 Comments   
Comment by David Zhao [ 28/Mar/12 ]

Fixed it by initializing jms lazy grizzly proxy when mdb deployment at glassfish startup. Checkin 53199.





[GLASSFISH-7302] Glassfish 2.1 doesn't use <message-destination-link> element of MDB deployment descriptor Created: 11/Mar/09  Updated: 20/Dec/16  Resolved: 07/Mar/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 9.1peur2
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: szymondembek Assignee: David Zhao
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All
URL: http://forums.java.net/jive/thread.jspa?threadID=58774


Issuezilla Id: 7,302
Status Whiteboard:

v3_exclude,V2.1.1exclude


 Description   

I've been playing a bit with glassfish 2.1 (Sun Java System Application Server
9.1_02 (build b04-fcs)). I tried to setup a message link scenario between an
SLSB bean and an MDB bean using a message-destination-link elements of the ejb-
jar.xml deployment descriptor. The idea is that the MDB consumes messages
produced by the SLSB bean.

For the SLSB ejb bean I have the following declaration in ejb-jar.xml:
<session>
<ejb-name>TestSLBean</ejb-name>
<message-destination-ref>
<message-destination-ref-name>jms/StockQueue</message-destination-ref-name>
<message-destination-type>javax.jms.Queue</message-destination-type>
<message-destination-usage>Produces</message-destination-usage>
<message-destination-link>LogicalStockQueue</message-destination-link>
</message-destination-ref>
</session>

The bean class for this EJB is annotaded with @EJB annotation, so the
descriptor above only adds the message destinaion ref to its definition. In
it's code this bean looks up the message destination in its JNDI environment
and sends a message to it.

The MDB has the following descriptor:
<message-driven>
<ejb-name>TestMDB</ejb-name>
<ejb-class>com.dembek.testapp.ejb.mdb.TestMDBBean</ejb-class>
<message-destination-type>javax.jms.Queue</message-destination-type>
<message-destination-link>LogicalStockQueue</message-destination-link>
</message-driven>

The logical destination 'LogicalStockQueue' is then described in the assembly-
desriptor element of ejb-jar.xml:
<message-destination>
<message-destination-name>LogicalStockQueue</message-destination-name>
</message-destination>

It is also linked to a phisical destination in sun-ejb-jar.xml:
<message-destination>
<message-destination-name>LogicalStockQueue</message-destination-name>
<jndi-name>PhysicalQueueName</jndi-name>
</message-destination>

The 'PhysicalQueueName' queue is defined as a queue in JMS resources part of
the admin console and linked to a physical destination as well.

Now to the problem: while deploying this ejb app, I get the following exception:
com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not
created :
at
com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.getPhysicalDestina
tionFromConfiguration(ActiveJmsResourceAdapter.java:1591)
at
com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.updateMDBRuntimeIn
fo(ActiveJmsResourceAdapter.java:1421)
at com.sun.enterprise.connectors.inflow.ConnectorMessageBeanClient.setup
(ConnectorMessageBeanClient.java:170)
at com.sun.ejb.containers.MessageBeanContainer.<init>
(MessageBeanContainer.java:209)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer
(ContainerFactoryImpl.java:524)
at com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java:527)
at com.sun.enterprise.server.ApplicationLoader.doLoad
(ApplicationLoader.java:191)
at com.sun.enterprise.server.TomcatApplicationLoader.doLoad
(TomcatApplicationLoader.java:126)
at com.sun.enterprise.server.ExtendedApplicationLoader.doLoad
(ExtendedApplicationLoader.java:134)
at com.sun.enterprise.server.AbstractLoader.load(AbstractLoader.java:238)
.........
at com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke
(SunoneInterceptor.java:304)
at com.sun.enterprise.interceptor.DynamicInterceptor.invoke
(DynamicInterceptor.java:174)
at com.sun.enterprise.deployment.client.DeploymentClientUtils.startApplication
(DeploymentClientUtils.java:159)
at com.sun.enterprise.deployment.client.DeployAction.run(DeployAction.java:538)
at java.lang.Thread.run(Thread.java:619)

I digged a bit into the source code and found out, that Glassfish translates
the deployment descriptor elements into activation config properties. This
translation is performed for MDB's using the default resource adapter 'jmsra'
(which is just the internal JMS implementation exposed as a RA).

For some reason, the 'Destination' activation config property is created from
the jndiName of the bean (which happens to be the mappedName property of the
MessageDriven annotation on the bean class). The message-destination-link
element is totally ignored:
From com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.java:
public void updateMDBRuntimeInfo(EjbMessageBeanDescriptor descriptor_,
BeanPoolDescriptor poolDescriptor) throws ConnectorRuntimeException{

String jndiName = descriptor_.getJndiName();

//handling of MDB 1.3 runtime deployment descriptor
//if no RA-mid is specified, assume it is a 1.3 DD
if (jndiName == null) { //something's wrong in DD
logger.log (Level.SEVERE, "Missing Destination JNDI Name");
String msg = sm.getString("ajra.error_in_dd");
throw new RuntimeException(msg);
}

String resourceAdapterMid = ConnectorRuntime.DEFAULT_JMS_ADAPTER;

descriptor_.setResourceAdapterMid(resourceAdapterMid);

String destName = getPhysicalDestinationFromConfiguration(jndiName);

//1.3 jndi-name ==> 1.4 setDestination
descriptor_.putRuntimeActivationConfigProperty(
new EnvironmentProperty(DESTINATION,
destName, null));
...

So, instead of the line:

String jndiName = descriptor_.getJndiName();

shouldn't we have:

String jndiName = descriptor_.getMessageDestinationLinkName()

to read the destination name from the message-destination-link element and in
case it is not present, fail into any other method (mappedName for instance)?

I know I can just simply specify an activation config properties for my mdb, or
use the mappedName property of the MessageDriven annotation to link it to a
certain queue, but the point is to adhere to the EJB spec and use the message-
destination-link element of the deployment descriptor.



 Comments   
Comment by szymondembek [ 16/Mar/09 ]

Updated the version number

Comment by doviche [ 01/Jul/09 ]

Hello there java guys, I am facing the problem, when I try to deploy my ejb
module I am getting the same error:
com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created

I have previously created my ConnectionFactory in Glassfish under Resources as
well as the Destination Resource, so I don't see the point why should I be
getting this error.

As it seems it fails because at the time of the deployment the container doesn't
find the Queue Resource I am trying to connect to.

Any help would be appreciated.

Thanks to all of you in advance.

Douglas

Comment by ksak [ 08/Oct/09 ]

Marked v3_exclude.

Comment by jagadesh [ 15/Oct/09 ]

Will not be fixed for V2.1.1

Comment by marina vatkina [ 18/Mar/11 ]

The error is indicated to be in ActiveJmsResourceAdapter. Requesting Kumar to investigate

Comment by Cheng Fang [ 18/Mar/11 ]

This is the same issue as http://java.net/jira/browse/GLASSFISH-8605. Also, Sun bug 6335445 has more details and evaluation.

Comment by David Zhao [ 13/Feb/12 ]

Fixed it in trunk branch by checkin 52556.

Comment by Tom Mueller [ 06/Mar/12 ]

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.





[GLASSFISH-18565] 2 JMS failures on GF4.0 (build 30) dated 3/27/2012 Created: 27/Mar/12  Updated: 20/Dec/16  Resolved: 28/Mar/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: alanf760 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Getting 2 JMS failures from 2 new JMS tests that uncover a bug in JMS. The 2 failures are:

FAILED........com/sun/ts/tests/jms/core/appclient/queuetests/QueueTests.java#queueRequestorExceptionTests_from_appclient
FAILED........com/sun/ts/tests/jms/core/appclient/topictests/TopicTests.java#topicRequestorExceptionTests_from_appclient

Passing an Invalid Destination to QueueRequestor or TopicRequestor constructor does not throw an InvalidDestinationException which the JavaDoc states that is should. Example:

session = create session object
QueueRequestor req = new QueueRequestor(session, null);

This should throw an InvalidDestinationException passing null but it does not.



 Comments   
Comment by David Zhao [ 28/Mar/12 ]

This defect belongs to jms spec, and it is duplicate to JMS_SPEC-78.





[GLASSFISH-17133] JMS resouce adapter is not accessable from a java client Created: 29/Jul/11  Updated: 20/Dec/16  Resolved: 31/Mar/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 3.1.1_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: danny70437 Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

glassfish@centos5, client@eclipse@windows7-64bit


Tags: 3_1_x-exclude, LOCAL, MQJMSRA_RA4001, REMOTE, broker, jms, resource_adapter

 Description   

Hi,

I tried to query a JMS factory by JNDI naming service like this:

InitialContext ctx = new InitialContext(serverContext);
Object factory = ctx.lookup("jms/responseTopicConnectionFactory");

The client running this code is a windows machine -
the glassfish us running on a centos server.

If i configure the JMS in LOCAL mode, i get the following
error on the client side, because the client tries to start
a imqbrokersvc (why?) using the program path from the server:


SCHWERWIEGEND: MQJMSRA_RA4001: start:Aborting:Exception starting LOCAL broker=Cannot run program "C:\opt\glassfish3\mq\bin\imqbrokersvc.exe": CreateProcess error=2, Das Syst\
em kann die angegebene Datei nicht finden
29.07.2011 13:44:01 com.sun.messaging.jms.blc.LifecycleManagedBroker start
INFO: SJSMQ LifecycleManagedBroker configuration=
brokerInstanceName =n1standalonen1standalone
brokerBindAddress =null
brokerPort =27676
brokerHomeDir =C:\opt\glassfish3\mq
brokerLibDir =C:\opt\glassfish3\mq\lib
brokerVarDir =C:\opt\glassfish3\glassfish\nodes\n1\n1.standalone\imq
brokerJavaDir =C:\opt\jdk1.6.0_26\jre
brokerArgs =null
MasterBroker =null
brokerId =null

Caused by: java.io.IOException: Cannot run program "C:\opt\glassfish3\mq\bin\imqbrokersvc.exe": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:466)
at com.sun.messaging.jmq.admin.jmsspi.JMSAdminImpl.launchAndWatch(JMSAdminImpl.java:794)
at com.sun.messaging.jmq.admin.jmsspi.JMSAdminImpl.startProvider(JMSAdminImpl.java:789)
at com.sun.messaging.jms.blc.LocalBrokerRunner.start(LocalBrokerRunner.java:310)
at com.sun.messaging.jms.blc.LifecycleManagedBroker.start(LifecycleManagedBroker.java:431)


If I use the EMBEDDED mode, it doesn't work also because the client
try to access a property file using the wrong filename (Path somewhere on the server)

All tests was done with glassfish version 3.1.1_b12 and 3.1_stable

If I use the REMOTE mode and start a standalone /opt/MessageQueue4_5_1/mq/bin/imqbrokerd JMS-Server @centos,
the lookup works fine - without exception.

The setup using LOCAL-Mode in glassfish 2.1.1 works fine.

If I try to start the imqbrokerd from the glassfish bundle, i get an error (but may this is normal):
[B3276]: Starting a GlassFish-managed broker directly using imqbrokerd is not allowed

So, i think the JMS MQ resource adapter is broken.

Workaround: Do not use JMS LOCAL/EMBEDDED typ, but setup a standalone JMS server and
configure glassfish to use this Server as REMOTE typ.

Kind regards
Danny



 Comments   
Comment by David Zhao [ 31/Mar/12 ]

Can not reproduce it against GlassFish 4.0. In my testing, the jms client on win7 sends messages to GF4.0 server (in either LOCAL or EMBEDDED jms service type) on RedHat Linux successfully.





[GLASSFISH-17382] delete of jmsdest that doesn't exist succeeds in 3.x, but fails in 2.x Created: 05/Oct/11  Updated: 20/Dec/16  Resolved: 31/Mar/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 3.1.2_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: Alex Pineda Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Oracle Enterprise Linux 5, x86_64 processor, GF 3.1.2 build 1 or GF 3.1.1 FCS.


Tags: 3_1_2-exclude

 Description   

This test scenario is from our AdminCLI QA test suite which contains v2.x test cases. The test sequence is as follows:

  • create a new domain
  • start the new domain
  • delete a non-existing jmsdest

In v2.x the expected behavior was a failure because the command would not succeed in deleting a jmsdest that did not exist. In GF 3.1.1 and 3.1.2 (not sure about 3.1), the command succeeds and returns a "Command delete-jmsdest executed successfully" message when in fact, the deletion does not occur. So, the system behavior is inconsistent or one may view it as an incompatibility between v2.x and GF 3.1.x.

The exact command sequences are:
$ asadmin create-domain --domaindir $S1AS_HOME/testdomaindir --adminport 10000 --instanceport 10005 --user admin1 --passwordfile $TEST_BASE/t_passwd1.txt testdomain

$ asadmin start-domain --domaindir $S1AS_HOME/testdomaindir --user admin1 --passwordfile $TEST_BASE/template/t_passwd1.txt testdomain

$ asadmin delete-jmsdest --user admin1 --passwordfile $TEST_BASE/t_passwd1.txt --host wolfrun.us.oracle.com --port 10000 --desttype topic xxxxxxxx
Deprecated syntax, instead use:
asadmin --user admin1 --passwordfile /home/sqe/workspace/appserver-sqe/common/admincli/config/template/t_passwd1.txt --host wolfrun.us.oracle.com --port 10000 delete-jmsdest [options] ...
Command delete-jmsdest executed successfully.

Again. The expectation is for the command to fail and not succeed.



 Comments   
Comment by Satish Kumar [ 18/Nov/11 ]

The only incompatibility appears to be in the way the error message is displayed to the user.

Comment by Alex Pineda [ 09/Dec/11 ]

The problem is more than just about the message. The main issue is that command returns a success code, while the reality is that it should have failed because there was no jmsdest to delete from the beginning. This was the behavior expected in GF 2.x, thus, the reason for the bug.

Comment by Tom Mueller [ 22/Dec/11 ]

This is fixed on the trunk. Deleting a non-existing jmsdest now fails.

$ asadmin delete-jmsdest --user admin --port 4848 --desttype topic asdjf
Deprecated syntax, instead use:
asadmin --user admin --port 4848 delete-jmsdest [options] ...
remote failure: Delete JMS Destination failed. Please verify if the JMS Destination specified for deletion exists.
Command delete-jmsdest failed.

Comment by Alex Pineda [ 05/Jan/12 ]

Can you please fix this issue on the GF3.1.2 branch? It would clear up one test failure in our runs. Thanks in advance.

Comment by Tom Mueller [ 05/Jan/12 ]

This issue was already tagged as 3_1_2-exclude by Satish.
I'm reassigning to David to take another look. This change would have to be in the JMS mbean that takes care of deleting a destination, the change is not in the admin command itself because the command is the same between the trunk and the 3.1.2 branch.

Comment by David Zhao [ 31/Mar/12 ]

The problem does not exist in GlassFish 4.0.

asadmin delete-jmsdest lll
Enter the value for the desttype option> queue
remote failure: Delete JMS Destination failed. Please verify if the JMS Destination specified for deletion exists.
Command delete-jmsdest failed.





[GLASSFISH-16977] Changing JMS Type prints exception and warnings in server.log Created: 07/Jul/11  Updated: 20/Dec/16  Resolved: 06/Apr/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 3.1.1_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: lidiam Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

build: ogs-3.1.1-b11-07_04_2011-aix.zip on AIX, Firefox5 on Mac.


Attachments: Text File server.log    

 Description   

While verifying issue http://java.net/jira/browse/GLASSFISH-16010, noticed that the following exception and warnings are printed to instance's server.log when changing JMS Type (e.g. from EMBEDDED to REMOTE):

[#|2011-07-06T17:27:58.361-0700|SEVERE|oracle-glassfish3.1.1|null|_ThreadID=10;_ThreadName=Thread-9;|Config Listener notification got interrupted
java.util.concurrent.ExecutionException: java.lang.NullPointerException
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:243)
at java.util.concurrent.FutureTask.get(FutureTask.java:102)
at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1.call(Transactions.java:268)
at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1.call(Transactions.java:247)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314)
at java.util.concurrent.FutureTask.run(FutureTask.java:149)
at org.jvnet.hk2.config.Transactions$Notifier$1$1.run(Transactions.java:165)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:452)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314)
at java.util.concurrent.FutureTask.run(FutureTask.java:149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
at java.lang.Thread.run(Thread.java:736)
Caused by: java.lang.NullPointerException
at com.sun.enterprise.connectors.jms.system.JMSConfigListener.changed(JMSConfigListener.java:133)
at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:379)
at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:369)
at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:259)
at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:257)
... 5 more

#]

[#|2011-07-06T17:27:58.466-0700|WARNING|oracle-glassfish3.1.1|null|_ThreadID=11;_ThreadName=Thread-9;|Unprocessed event : UnprocessedChangeEvent

{PropertyName=start-args, OldValue = null, NewValue = null, Source = GlassFishConfigBean.com.sun.enterprise.config.serverbeans.JmsService}

, reason = restart required, when = 1309998478465|#]

[#|2011-07-06T17:27:58.548-0700|WARNING|oracle-glassfish3.1.1|null|_ThreadID=11;_ThreadName=Thread-9;|Unprocessed event : UnprocessedChangeEvent

{PropertyName=type, OldValue = EMBEDDED, NewValue = REMOTE, Source = GlassFishConfigBean.com.sun.enterprise.config.serverbeans.JmsService}

, reason = restart required, when = 1309998478548|#]

[#|2011-07-06T17:27:58.640-0700|WARNING|oracle-glassfish3.1.1|null|_ThreadID=11;_ThreadName=Thread-9;|Unprocessed event : UnprocessedChangeEvent

{PropertyName=mq-service, OldValue = null, NewValue = null, Source = GlassFishConfigBean.com.sun.enterprise.config.serverbeans.JmsService}

, reason = restart required, when = 1309998478640|#]

[#|2011-07-06T17:27:58.734-0700|WARNING|oracle-glassfish3.1.1|null|_ThreadID=12;_ThreadName=Thread-9;|Unprocessed event : UnprocessedChangeEvent

{PropertyName=mq-scheme, OldValue = null, NewValue = null, Source = GlassFishConfigBean.com.sun.enterprise.config.serverbeans.JmsService}

, reason = restart required, when = 1309998478734|#]



 Comments   
Comment by David Zhao [ 06/Apr/12 ]

Fixed it by svn revision 53411 on 04/05/2012 10:13 PM.





[GLASSFISH-17439] java.net.BindException: No free port within range: 7676=com.sun.enterprise.v3.services.impl.ServiceInitializerHandler Created: 18/Oct/11  Updated: 20/Dec/16  Resolved: 31/Mar/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 3.1.1
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: galaxy2011 Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Ubuntu in VMWare on Mac Snow Leopard


Attachments: Zip Archive domain_xml.zip    
Tags: 3_1_2-exclude

 Description   

I created two domains: DEV and QA
modified DEV/config/domain.xml to use port numbers such as 8080, 8181, 4848, 7676, etc
modified QA/config/domain.xml to use port numbers such as 28080, 28181, 24848, 27676, etc
start domain "DEV" first, and it started successfully
start domain "QA", it failed with the following exception

seems port number 7676 is hard-coded somewhere.

[#|2011-10-18T01:20:38.940-0600|SEVERE|oracle-glassfish3.1.1|grizzly|_ThreadID=11;_ThreadName=Grizzly-kernel-thread(1);|doSelect IOException
java.net.BindException: No free port within range: 7676=com.sun.enterprise.v3.services.impl.ServiceInitializerHandler@a316ad
at com.sun.grizzly.TCPSelectorHandler.initSelector(TCPSelectorHandler.java:432)
at com.sun.grizzly.TCPSelectorHandler.preSelect(TCPSelectorHandler.java:378)
at com.sun.grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:188)
at com.sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:132)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)



 Comments   
Comment by oleksiys [ 18/Oct/11 ]

can you pls. attach domain.xml files?

Comment by oleksiys [ 19/Oct/11 ]

pls. reattach the files, there seems to be some problem with JIRA
"Could not find the specified attachment on the server"

Comment by oleksiys [ 19/Oct/11 ]

FYI:
I have just tried to reproduce the problem on my ubuntu, but everything worked just fine.

still waiting for DEV and QA domain.xmls

Thanks.

Comment by galaxy2011 [ 20/Oct/11 ]

here is the steps to reproduce:

1. start DEV domain first, it started succesfully
2. start QA, it failed because of the exception
3. stop DEV domain, it stoped successfully
4. start QA, it started successfully
5. start DEV, it failed because of the exception

so once a domain is started, the other domain can't be started because port number 7676 is in use.

Comment by oleksiys [ 20/Oct/11 ]

you see the failure because both domain.xml files don't have a port specified for jms service.

<jms-service default-jms-host="default_JMS_host" type="EMBEDDED">
<jms-host host="localhost" name="default_JMS_host"></jms-host>
</jms-service>

so both of them use default 7676.

if you specify port for QA domain like:

<jms-service default-jms-host="default_JMS_host" type="EMBEDDED">
<jms-host host="localhost" port="27676" name="default_JMS_host"></jms-host>
</jms-service>

it will work.

Comment by oleksiys [ 20/Oct/11 ]

mark as not an issue.

Comment by galaxy2011 [ 20/Oct/11 ]

this still could be an issue if user is not aware a port attribute is needed in jms-host element. the jms-service element in domain.xml should use property name, instead of omitting it at all. Hope this fix will be included in next GF release.

<jms-service default-jms-host="default_JMS_host" type="EMBEDDED">
<jms-host host="localhost" port="$

{JMS_PROVIDER_PORT}

" name="default_JMS_host"></jms-host>
</jms-service>

Comment by oleksiys [ 21/Oct/11 ]

reopen the issue to reassign it to jms team

Comment by oleksiys [ 21/Oct/11 ]

reassigning to jms team.

Comment by David Zhao [ 31/Mar/12 ]

I tried it against GlassFish 4.0 and can not reproduce the same.

With 4.0, if creating a new domain by "asadmin create-domain <domain_name>", then the port property is specified explicitly under <server-config>:

<jms-service type="EMBEDDED" default-jms-host="default_JMS_host">
<jms-host name="default_JMS_host" host="localhost" port="7676" admin-user-name="admin" admin-password="admin" lazy-init="true"/>
</jms-service>

Under <default-config>, it is the same:

<jms-service type="EMBEDDED" default-jms-host="default_JMS_host" addresslist-behavior="priority">
<jms-host name="default_JMS_host" host="localhost" port="$

{JMS_PROVIDER_PORT}

" admin-user-name="admin" admin-password="admin" lazy-init="true"/>
</jms-service>

So I think the defect has been fixed in 4.0. Please confirm if are comfortable with it.

Comment by push2085 [ 10/Oct/12 ]

Hi
This is Pushkar. I am still facing the same issue as described above.
I am using glassfish 3.1.2 on one machine and 3.1.2.2 on the second machine. I have installed JDK7 on both these machines. (Each of them is a standalone instance)

After installing glassfish i boot up the servers and everything works fine. Now i tried creating JMS host on both these machines using the glassfish admin console as well as command line. Both the times after i create a host, i have to restart glassfish. Once i restart glassfish it fails to start up and throws the following error:

**************************************************************************
[#|2012-10-10T15:35:16.069-0700|INFO|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.services.impl|_ThreadID=26;_ThreadName=Grizzly-kernel-thread(1);|Grizzly Framework 1.9.50 started in: 3ms - bound to [0.0.0.0:4848]|#]

[#|2012-10-10T15:35:16.081-0700|INFO|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.services.impl|_ThreadID=29;_ThreadName=Grizzly-kernel-thread(1);|Grizzly Framework 1.9.50 started in: 5ms - bound to [0.0.0.0:3700]|#]

[#|2012-10-10T15:35:16.093-0700|INFO|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.services.impl|_ThreadID=32;_ThreadName=Grizzly-kernel-thread(1);|Grizzly Framework 1.9.50 started in: 2ms - bound to [0.0.0.0:7676]|#]

[#|2012-10-10T15:35:16.097-0700|SEVERE|glassfish3.1.2|grizzly|_ThreadID=35;_ThreadName=Grizzly-kernel-thread(1);|doSelect IOException
java.net.BindException: No free port within range: 7676=com.sun.enterprise.v3.services.impl.ServiceInitializerHandler@4254ecc2
at com.sun.grizzly.TCPSelectorHandler.initSelector(TCPSelectorHandler.java:432)
at com.sun.grizzly.TCPSelectorHandler.preSelect(TCPSelectorHandler.java:378)
at com.sun.grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:188)
at com.sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:132)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

#]

[#|2012-10-10T15:35:16.279-0700|INFO|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.admin.adapter|_ThreadID=1;_ThreadName=main;|The Admin Console is already installed, but not yet loaded.|#]

[#|2012-10-10T15:35:16.536-0700|SEVERE|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=1;_ThreadName=main;|CORE10012: Application previously deployed is not at its original location any more: file:/usr/local/strongauth/glassfish3/glassfish/domains/domain1//applications/cda-M0-b4/|#]

[#|2012-10-10T15:35:16.564-0700|INFO|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=1;_ThreadName=main;|GlassFish Server Open Source Edition 3.1.2.2 (5) startup time : Felix (2,189ms), startup services(1,232ms), total(3,421ms)|#]

[#|2012-10-10T15:35:16.566-0700|SEVERE|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=1;_ThreadName=main;|Shutting down v3 due to startup exception : No free port within range: 7676=com.sun.enterprise.v3.services.impl.ServiceInitializerHandler@4254ecc2|#]

[#|2012-10-10T15:35:16.593-0700|INFO|glassfish3.1.2|javax.enterprise.system.tools.admin.com.sun.enterprise.v3.admin|_ThreadID=40;_ThreadName=Thread-25;|Server shutdown initiated|#]
*****************************************************

Is there a solution to this or is there a work around? Any help would be appreciated.

I am also pasting my domain.xml file in this message as a reference: (I have replaced the domain name and passwords with "XXXXX"
**************************Domain.xml*******************************
<domain log-root="$

{com.sun.aas.instanceRoot}/logs" application-root="${com.sun.aas.instanceRoot}

/applications" version="5">
<system-applications>
<application context-root="" location="$

{com.sun.aas.installRootURI}

/lib/install/applications/_admingui" name="_admingui" directory-deployed="true" object-type="system-admin">
<module name="__admingui">
<engine sniffer="web"></engine>
<engine sniffer="security"></engine>
</module>
</application>
</system-applications>
<applications>
<application location="$

{com.sun.aas.instanceRootURI}/applications/cda-M0-b4/" name="cda-M0-b4" object-type="user">
<property name="appLocation" value="${com.sun.aas.instanceRootURI}

/applications/__internal/cda-M0-b4/cda-M0-b4.ear"></property>
<property name="org.glassfish.ejb.container.application_unique_id" value="88314195554009088"></property>
<property name="isComposite" value="true"></property>
<property name="defaultAppName" value="cda-M0-b4"></property>
<engine sniffer="resources_ear"></engine>
<engine sniffer="ear"></engine>
<module name="cdawar.war">
<engine sniffer="webservices"></engine>
<engine sniffer="security"></engine>
<engine sniffer="web"></engine>
<resources>
<connector-connection-pool name="java:module/jms/NewMessageBeanFactoryPool" resource-adapter-name="jmsra" connection-definition-name="javax.jms.QueueConnectionFactory"></connector-connection-pool>
<admin-object-resource res-adapter="jmsra" res-type="javax.jms.Queue" jndi-name="java:module/jms/NewMessageBean">
<property name="Name" value="PhysicalQueue"></property>
</admin-object-resource>
<connector-resource pool-name="java:module/jms/NewMessageBeanFactoryPool" jndi-name="java:module/jms/NewMessageBeanFactory"></connector-resource>
<jdbc-connection-pool connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" name="java:module/CDAPool">
<property name="URL" value="jdbc:mysql://localhost:3306/cda"></property>
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="Password" value="XXXXXXX"></property>
<property name="portNumber" value="3306"></property>
<property name="databaseName" value="cda"></property>
<property name="User" value="cdadbuser"></property>
<property name="serverName" value="localhost"></property>
</jdbc-connection-pool>
<jdbc-resource pool-name="java:module/CDAPool" jndi-name="java:module/jdbc/cda"></jdbc-resource>
</resources>
</module>
<module name="cdaejb.jar">
<property name="org.glassfish.persistence.app_name_property" value="cda-M0-b4"></property>
<engine sniffer="ejb"></engine>
<engine sniffer="security"></engine>
<engine sniffer="jpa"></engine>
</module>
<resources>
<connector-connection-pool name="java:app/jms/NewMessageBeanFactoryPool" resource-adapter-name="jmsra" connection-definition-name="javax.jms.QueueConnectionFactory"></connector-connection-pool>
<admin-object-resource res-adapter="jmsra" res-type="javax.jms.Queue" jndi-name="java:app/jms/NewMessageBean">
<property name="Name" value="PhysicalQueue"></property>
</admin-object-resource>
<connector-resource pool-name="java:app/jms/NewMessageBeanFactoryPool" jndi-name="java:app/jms/NewMessageBeanFactory"></connector-resource>
<jdbc-connection-pool connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" wrap-jdbc-objects="false" res-type="javax.sql.DataSource" name="java:app/CDAPool">
<property name="URL" value="jdbc:mysql://localhost:3306/cda"></property>
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="Password" value="XXXXXXXXX"></property>
<property name="portNumber" value="3306"></property>
<property name="databaseName" value="cda"></property>
<property name="User" value="cdadbuser"></property>
<property name="serverName" value="localhost"></property>
</jdbc-connection-pool>
<jdbc-resource pool-name="java:app/CDAPool" jndi-name="java:app/jdbc/cda"></jdbc-resource>
</resources>
</application>
</applications>
<resources>
<jdbc-resource pool-name="_TimerPool" jndi-name="jdbc/_TimerPool" object-type="system-admin"></jdbc-resource>
<jdbc-resource pool-name="DerbyPool" jndi-name="jdbc/__default"></jdbc-resource>
<jdbc-connection-pool datasource-classname="org.apache.derby.jdbc.EmbeddedXADataSource" res-type="javax.sql.XADataSource" name="__TimerPool">
<property name="databaseName" value="$

{com.sun.aas.instanceRoot}/lib/databases/ejbtimer"></property>
<property name="connectionAttributes" value=";create=true"></property>
</jdbc-connection-pool>
<jdbc-connection-pool is-isolation-level-guaranteed="false" datasource-classname="org.apache.derby.jdbc.ClientDataSource" res-type="javax.sql.DataSource" name="DerbyPool">
<property name="PortNumber" value="1527"></property>
<property name="Password" value="APP"></property>
<property name="User" value="APP"></property>
<property name="serverName" value="localhost"></property>
<property name="DatabaseName" value="sun-appserv-samples"></property>
<property name="connectionAttributes" value=";create=true"></property>
</jdbc-connection-pool>
<jdbc-connection-pool datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource" res-type="javax.sql.DataSource" name="CDAPool">
<property name="User" value="cdadbuser"></property>
<property name="Password" value="XXXXXXXXX"></property>
<property name="ServerName" value="localhost"></property>
<property name="Port" value="3306"></property>
<property name="DatabaseName" value="cda"></property>
<property name="Url" value="jdbc:mysql://localhost:3306/cda"></property>
</jdbc-connection-pool>
<jdbc-resource pool-name="CDAPool" description="" jndi-name="jdbc/cda"></jdbc-resource>
</resources>
<servers>
<server name="server" config-ref="server-config">
<application-ref ref="_admingui" virtual-servers="_asadmin"></application-ref>
<application-ref ref="cda-M0-b4" virtual-servers="server"></application-ref>
<resource-ref ref="jdbc/__TimerPool"></resource-ref>
<resource-ref ref="jdbc/__default"></resource-ref>
<resource-ref ref="jdbc/cda"></resource-ref>
</server>
</servers>
<nodes>
<node node-host="localhost" name="localhost-domain1" type="CONFIG" install-dir="${com.sun.aas.productRoot}"></node>
</nodes>
<configs>
<config name="server-config">
<http-service>
<access-log></access-log>
<virtual-server id="server" network-listeners="http-listener-1,http-listener-2"></virtual-server>
<virtual-server id="__asadmin" network-listeners="admin-listener"></virtual-server>
</http-service>
<iiop-service>
<orb use-thread-pool-ids="thread-pool-1"></orb>
<iiop-listener port="3700" id="orb-listener-1" address="0.0.0.0" lazy-init="true"></iiop-listener>
<iiop-listener port="3820" id="SSL" address="0.0.0.0" security-enabled="true">
<ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
</iiop-listener>
<iiop-listener port="3920" id="SSL_MUTUALAUTH" address="0.0.0.0" security-enabled="true">
<ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as" client-auth-enabled="true"></ssl>
</iiop-listener>
</iiop-service>
<admin-service system-jmx-connector-name="system" type="das-and-server">
<jmx-connector port="8686" address="0.0.0.0" security-enabled="false" auth-realm-name="admin-realm" name="system"></jmx-connector>
<property name="adminConsoleContextRoot" value="/admin"></property>
<property name="adminConsoleDownloadLocation" value="${com.sun.aas.installRoot}/lib/install/applications/admingui.war"></property>
<property name="ipsRoot" value="${com.sun.aas.installRoot}/.."></property>
<das-config></das-config>
</admin-service>
<connector-service></connector-service>
<web-container>
<session-config>
<session-manager>
<manager-properties></manager-properties>
<store-properties></store-properties>
</session-manager>
<session-properties></session-properties>
</session-config>
</web-container>
<ejb-container session-store="${com.sun.aas.instanceRoot}

/session-store">
<ejb-timer-service></ejb-timer-service>
</ejb-container>
<mdb-container></mdb-container>
<jms-service default-jms-host="default_JMS_host">
<jms-host host="localhost" name="default_JMS_host" ></jms-host>
<jms-host host="devgcda1.strongauth.com" port="7676" name="devgcda1"></jms-host>
</jms-service>
<security-service>
<auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="admin-realm">
<property name="file" value="$

{com.sun.aas.instanceRoot}/config/admin-keyfile"></property>
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="file">
<property name="file" value="${com.sun.aas.instanceRoot}

/config/keyfile"></property>
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
<jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
<property name="repository" value="$

{com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
<audit-module classname="com.sun.enterprise.security.Audit" name="default">
<property name="auditOn" value="false"></property>
</audit-module>
<message-security-config auth-layer="SOAP">
<provider-config provider-type="client" provider-id="XWS_ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
<request-policy auth-source="content"></request-policy>
<response-policy auth-source="content"></response-policy>
<property name="encryption.key.alias" value="s1as"></property>
<property name="signature.key.alias" value="s1as"></property>
<property name="dynamic.username.password" value="false"></property>
<property name="debug" value="false"></property>
</provider-config>
<provider-config provider-type="client" provider-id="ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
<request-policy auth-source="content"></request-policy>
<response-policy auth-source="content"></response-policy>
<property name="encryption.key.alias" value="s1as"></property>
<property name="signature.key.alias" value="s1as"></property>
<property name="dynamic.username.password" value="false"></property>
<property name="debug" value="false"></property>
<property name="security.config" value="${com.sun.aas.instanceRoot}

/config/wss-server-config-1.0.xml"></property>
</provider-config>
<provider-config provider-type="server" provider-id="XWS_ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
<request-policy auth-source="content"></request-policy>
<response-policy auth-source="content"></response-policy>
<property name="encryption.key.alias" value="s1as"></property>
<property name="signature.key.alias" value="s1as"></property>
<property name="debug" value="false"></property>
</provider-config>
<provider-config provider-type="server" provider-id="ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
<request-policy auth-source="content"></request-policy>
<response-policy auth-source="content"></response-policy>
<property name="encryption.key.alias" value="s1as"></property>
<property name="signature.key.alias" value="s1as"></property>
<property name="debug" value="false"></property>
<property name="security.config" value="$

{com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"></property>
</provider-config>
</message-security-config>
<message-security-config auth-layer="HttpServlet">
<provider-config provider-type="server" provider-id="GFConsoleAuthModule" class-name="org.glassfish.admingui.common.security.AdminConsoleAuthModule">
<request-policy auth-source="sender"></request-policy>
<response-policy></response-policy>
<property name="restAuthURL" value="https://localhost:${ADMIN_LISTENER_PORT}/management/sessions"></property>
<property name="loginPage" value="/login.jsf"></property>
<property name="loginErrorPage" value="/loginError.jsf"></property>
</provider-config>
</message-security-config>
<property name="default-digest-algorithm" value="SHA-256"></property>
</security-service>
<transaction-service tx-log-dir="${com.sun.aas.instanceRoot}

/logs"></transaction-service>
<java-config debug-options="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009" system-classpath="" classpath-suffix="" java-home="/home/pmarathe/Desktop/jdk1.7.0_05">
<jvm-options>-XX:MaxPermSize=512m</jvm-options>
<jvm-options>-XX:PermSize=64m</jvm-options>
<jvm-options>-server</jvm-options>
<jvm-options>-Djava.awt.headless=true</jvm-options>
<jvm-options>-Djavax.management.builder.initial=com.sun.enterprise.v3.admin.AppServerMBeanServerBuilder</jvm-options>
<jvm-options>-XX:+UnlockDiagnosticVMOptions</jvm-options>
<jvm-options>-Djava.endorsed.dirs=$

{com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}

/lib/endorsed</jvm-options>
<jvm-options>-Djava.security.policy=$

{com.sun.aas.instanceRoot}/config/server.policy</jvm-options>
<jvm-options>-Djava.security.auth.login.config=${com.sun.aas.instanceRoot}

/config/login.conf</jvm-options>
<jvm-options>-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as</jvm-options>
<jvm-options>-Xmx2048m</jvm-options>
<jvm-options>-Djavax.net.ssl.keyStore=$

{com.sun.aas.instanceRoot}/config/keystore.jks</jvm-options>
<jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}

/config/cacerts.jks</jvm-options>
<jvm-options>-Djava.ext.dirs=$

{com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}

/jre/lib/ext$

{path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
<jvm-options>-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver</jvm-options>
<jvm-options>-DANTLR_USE_DIRECT_CLASS_LOADING=true</jvm-options>
<jvm-options>-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory</jvm-options>
<jvm-options>-Dosgi.shell.telnet.port=6666</jvm-options>
<jvm-options>-Dosgi.shell.telnet.maxconn=1</jvm-options>
<jvm-options>-Dosgi.shell.telnet.ip=127.0.0.1</jvm-options>
<jvm-options>Dgosh.args=-nointeractive</jvm-options>
<jvm-options>-Dfelix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/</jvm-options>
<jvm-options>-Dfelix.fileinstall.poll=5000</jvm-options>
<jvm-options>-Dfelix.fileinstall.log.level=2</jvm-options>
<jvm-options>-Dfelix.fileinstall.bundles.new.start=true</jvm-options>
<jvm-options>-Dfelix.fileinstall.bundles.startTransient=true</jvm-options>
<jvm-options>-Dfelix.fileinstall.disableConfigSave=false</jvm-options>
<jvm-options>-XX:NewRatio=2</jvm-options>
</java-config>
<network-config>
<protocols>
<protocol name="http-listener-1">
<http default-virtual-server="server" max-connections="250">
<file-cache></file-cache>
</http>
</protocol>
<protocol security-enabled="true" name="http-listener-2">
<http default-virtual-server="server" max-connections="250">
<file-cache></file-cache>
</http>
<ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
</protocol>
<protocol name="admin-listener">
<http default-virtual-server="__asadmin" max-connections="250" encoded-slash-enabled="true">
<file-cache></file-cache>
</http>
</protocol>
<protocol security-enabled="true" name="sec-admin-listener">
<http default-virtual-server="__asadmin" encoded-slash-enabled="true">
<file-cache></file-cache>
</http>
<ssl client-auth="want" classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
</protocol>
<protocol name="admin-http-redirect">
<http-redirect secure="true"></http-redirect>
</protocol>
<protocol name="pu-protocol">
<port-unification>
<protocol-finder protocol="sec-admin-listener" name="http-finder" classname="com.sun.grizzly.config.HttpProtocolFinder"></protocol-finder>
<protocol-finder protocol="admin-http-redirect" name="admin-http-redirect" classname="com.sun.grizzly.config.HttpProtocolFinder"></protocol-finder>
</port-unification>
</protocol>
</protocols>
<network-listeners>
<network-listener port="8080" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>
<network-listener port="8181" protocol="http-listener-2" transport="tcp" name="http-listener-2" thread-pool="http-thread-pool"></network-listener>
<network-listener port="4848" protocol="pu-protocol" transport="tcp" name="admin-listener" thread-pool="admin-thread-pool"></network-listener>
</network-listeners>
<transports>
<transport name="tcp"></transport>
</transports>
</network-config>
<thread-pools>
<thread-pool name="admin-thread-pool" max-thread-pool-size="50" max-queue-size="256"></thread-pool>
<thread-pool name="http-thread-pool"></thread-pool>
<thread-pool name="thread-pool-1" max-thread-pool-size="200"></thread-pool>
</thread-pools>
<monitoring-service>
<module-monitoring-levels></module-monitoring-levels>
</monitoring-service>
<group-management-service>
<failure-detection></failure-detection>
</group-management-service>
</config>
<config name="default-config">
<http-service>
<access-log></access-log>
<virtual-server id="server" network-listeners="http-listener-1, http-listener-2">
<property name="default-web-xml" value="${com.sun.aas.instanceRoot}/config/default-web.xml"></property>
</virtual-server>
<virtual-server id="__asadmin" network-listeners="admin-listener"></virtual-server>
</http-service>
<iiop-service>
<orb use-thread-pool-ids="thread-pool-1"></orb>
<iiop-listener port="${IIOP_LISTENER_PORT}" id="orb-listener-1" address="0.0.0.0"></iiop-listener>
<iiop-listener port="${IIOP_SSL_LISTENER_PORT}" id="SSL" address="0.0.0.0" security-enabled="true">
<ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
</iiop-listener>
<iiop-listener port="${IIOP_SSL_MUTUALAUTH_PORT}" id="SSL_MUTUALAUTH" address="0.0.0.0" security-enabled="true">
<ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as" client-auth-enabled="true"></ssl>
</iiop-listener>
</iiop-service>
<admin-service system-jmx-connector-name="system">
<jmx-connector port="${JMX_SYSTEM_CONNECTOR_PORT}" address="0.0.0.0" security-enabled="false" auth-realm-name="admin-realm" name="system"></jmx-connector>
<property name="adminConsoleDownloadLocation" value="${com.sun.aas.installRoot}/lib/install/applications/admingui.war"></property>
<das-config></das-config>
</admin-service>
<web-container>
<session-config>
<session-manager>
<manager-properties></manager-properties>
<store-properties></store-properties>
</session-manager>
<session-properties></session-properties>
</session-config>
</web-container>
<ejb-container session-store="${com.sun.aas.instanceRoot}/session-store">
<ejb-timer-service></ejb-timer-service>
</ejb-container>
<mdb-container></mdb-container>
<jms-service addresslist-behavior="priority" default-jms-host="default_JMS_host">
<jms-host port="${JMS_PROVIDER_PORT}" host="localhost" name="default_JMS_host"></jms-host>
</jms-service>
<log-service log-rotation-limit-in-bytes="2000000" file="${com.sun.aas.instanceRoot}/logs/server.log">
<module-log-levels></module-log-levels>
</log-service>
<security-service>
<auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="admin-realm">
<property name="file" value="${com.sun.aas.instanceRoot}/config/admin-keyfile"></property>
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.file.FileRealm" name="file">
<property name="file" value="${com.sun.aas.instanceRoot}/config/keyfile"></property>
<property name="jaas-context" value="fileRealm"></property>
</auth-realm>
<auth-realm classname="com.sun.enterprise.security.auth.realm.certificate.CertificateRealm" name="certificate"></auth-realm>
<jacc-provider policy-provider="com.sun.enterprise.security.provider.PolicyWrapper" name="default" policy-configuration-factory-provider="com.sun.enterprise.security.provider.PolicyConfigurationFactoryImpl">
<property name="repository" value="${com.sun.aas.instanceRoot}/generated/policy"></property>
</jacc-provider>
<jacc-provider policy-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyProvider" name="simple" policy-configuration-factory-provider="com.sun.enterprise.security.jacc.provider.SimplePolicyConfigurationFactory"></jacc-provider>
<audit-module classname="com.sun.enterprise.security.Audit" name="default">
<property name="auditOn" value="false"></property>
</audit-module>
<message-security-config auth-layer="SOAP">
<provider-config provider-type="client" provider-id="XWS_ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
<request-policy auth-source="content"></request-policy>
<response-policy auth-source="content"></response-policy>
<property name="encryption.key.alias" value="s1as"></property>
<property name="signature.key.alias" value="s1as"></property>
<property name="dynamic.username.password" value="false"></property>
<property name="debug" value="false"></property>
</provider-config>
<provider-config provider-type="client" provider-id="ClientProvider" class-name="com.sun.xml.wss.provider.ClientSecurityAuthModule">
<request-policy auth-source="content"></request-policy>
<response-policy auth-source="content"></response-policy>
<property name="encryption.key.alias" value="s1as"></property>
<property name="signature.key.alias" value="s1as"></property>
<property name="dynamic.username.password" value="false"></property>
<property name="debug" value="false"></property>
<property name="security.config" value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"></property>
</provider-config>
<provider-config provider-type="server" provider-id="XWS_ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
<request-policy auth-source="content"></request-policy>
<response-policy auth-source="content"></response-policy>
<property name="encryption.key.alias" value="s1as"></property>
<property name="signature.key.alias" value="s1as"></property>
<property name="debug" value="false"></property>
</provider-config>
<provider-config provider-type="server" provider-id="ServerProvider" class-name="com.sun.xml.wss.provider.ServerSecurityAuthModule">
<request-policy auth-source="content"></request-policy>
<response-policy auth-source="content"></response-policy>
<property name="encryption.key.alias" value="s1as"></property>
<property name="signature.key.alias" value="s1as"></property>
<property name="debug" value="false"></property>
<property name="security.config" value="${com.sun.aas.instanceRoot}/config/wss-server-config-1.0.xml"></property>
</provider-config>
</message-security-config>
</security-service>
<transaction-service tx-log-dir="${com.sun.aas.instanceRoot}/logs" automatic-recovery="true"></transaction-service>
<diagnostic-service></diagnostic-service>
<java-config debug-options="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=${JAVA_DEBUGGER_PORT}" system-classpath="" classpath-suffix="">
<jvm-options>-XX:MaxPermSize=512m</jvm-options>
<jvm-options>-XX:PermSize=64m</jvm-options>
<jvm-options>-server</jvm-options>
<jvm-options>-Djava.awt.headless=true</jvm-options>
<jvm-options>-XX:+UnlockDiagnosticVMOptions</jvm-options>
<jvm-options>-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}

$

{com.sun.aas.installRoot}/lib/endorsed</jvm-options>
<jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy</jvm-options>
<jvm-options>-Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf</jvm-options>
<jvm-options>-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as</jvm-options>
<jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks</jvm-options>
<jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-options>
<jvm-options>-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
<jvm-options>-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver</jvm-options>
<jvm-options>-DANTLR_USE_DIRECT_CLASS_LOADING=true</jvm-options>
<jvm-options>-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory</jvm-options>
<jvm-options>-XX:NewRatio=2</jvm-options>
<jvm-options>-Xmx2048m</jvm-options>
<jvm-options>-Dosgi.shell.telnet.port=${OSGI_SHELL_TELNET_PORT}</jvm-options>
<jvm-options>-Dosgi.shell.telnet.maxconn=1</jvm-options>
<jvm-options>-Dosgi.shell.telnet.ip=127.0.0.1</jvm-options>
<jvm-options>Dgosh.args=-noshutdown -c noop=true</jvm-options>
<jvm-options>-Dfelix.fileinstall.dir=${com.sun.aas.installRoot}

/modules/autostart/</jvm-options>
<jvm-options>-Dfelix.fileinstall.poll=5000</jvm-options>
<jvm-options>-Dfelix.fileinstall.log.level=3</jvm-options>
<jvm-options>-Dfelix.fileinstall.bundles.new.start=true</jvm-options>
<jvm-options>-Dfelix.fileinstall.bundles.startTransient=true</jvm-options>
<jvm-options>-Dfelix.fileinstall.disableConfigSave=false</jvm-options>
</java-config>
<availability-service>
<web-container-availability></web-container-availability>
<ejb-container-availability sfsb-store-pool-name="jdbc/hastore"></ejb-container-availability>
<jms-availability></jms-availability>
</availability-service>
<network-config>
<protocols>
<protocol name="http-listener-1">
<http default-virtual-server="server">
<file-cache></file-cache>
</http>
</protocol>
<protocol security-enabled="true" name="http-listener-2">
<http default-virtual-server="server">
<file-cache></file-cache>
</http>
<ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>
</protocol>
<protocol name="admin-listener">
<http default-virtual-server="__asadmin" max-connections="250">
<file-cache></file-cache>
</http>
</protocol>
<protocol security-enabled="true" name="sec-admin-listener">
<http default-virtual-server="__asadmin" encoded-slash-enabled="true">
<file-cache></file-cache>
</http>
<ssl client-auth="want" classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="glassfish-instance"></ssl>
</protocol>
<protocol name="admin-http-redirect">
<http-redirect secure="true"></http-redirect>
</protocol>
<protocol name="pu-protocol">
<port-unification>
<protocol-finder protocol="sec-admin-listener" name="http-finder" classname="com.sun.grizzly.config.HttpProtocolFinder"></protocol-finder>
<protocol-finder protocol="admin-http-redirect" name="admin-http-redirect" classname="com.sun.grizzly.config.HttpProtocolFinder"></protocol-finder>
</port-unification>
</protocol>
</protocols>
<network-listeners>
<network-listener port="$

{HTTP_LISTENER_PORT}

" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>
<network-listener port="$

{HTTP_SSL_LISTENER_PORT}

" protocol="http-listener-2" transport="tcp" name="http-listener-2" thread-pool="http-thread-pool"></network-listener>
<network-listener port="$

{ASADMIN_LISTENER_PORT}

" protocol="pu-protocol" transport="tcp" name="admin-listener" thread-pool="http-thread-pool"></network-listener>
</network-listeners>
<transports>
<transport name="tcp"></transport>
</transports>
</network-config>
<thread-pools>
<thread-pool name="http-thread-pool"></thread-pool>
<thread-pool max-thread-pool-size="200" name="thread-pool-1"></thread-pool>
<thread-pool name="admin-thread-pool" max-thread-pool-size="50" max-queue-size="256"></thread-pool>
</thread-pools>
<group-management-service>
<failure-detection></failure-detection>
</group-management-service>
<management-rules></management-rules>
<system-property name="ASADMIN_LISTENER_PORT" value="24848"></system-property>
<system-property name="HTTP_LISTENER_PORT" value="28080"></system-property>
<system-property name="HTTP_SSL_LISTENER_PORT" value="28181"></system-property>
<system-property name="JMS_PROVIDER_PORT" value="27676"></system-property>
<system-property name="IIOP_LISTENER_PORT" value="23700"></system-property>
<system-property name="IIOP_SSL_LISTENER_PORT" value="23820"></system-property>
<system-property name="IIOP_SSL_MUTUALAUTH_PORT" value="23920"></system-property>
<system-property name="JMX_SYSTEM_CONNECTOR_PORT" value="28686"></system-property>
<system-property name="OSGI_SHELL_TELNET_PORT" value="26666"></system-property>
<system-property name="JAVA_DEBUGGER_PORT" value="29009"></system-property>
<monitoring-service>
<module-monitoring-levels></module-monitoring-levels>
</monitoring-service>
<connector-service></connector-service>
</config>
</configs>
<property name="administrative.domain.name" value="domain1"></property>
<secure-admin enabled="true" special-admin-indicator="e4a50521-0eca-4932-bca9-805fc1d8412e">
<secure-admin-principal dn="CN=localhost,OU=GlassFish,O=Oracle Corporation,L=Santa Clara,ST=California,C=US"></secure-admin-principal>
<secure-admin-principal dn="CN=localhost-instance,OU=GlassFish,O=Oracle Corporation,L=Santa Clara,ST=California,C=US"></secure-admin-principal>
</secure-admin>
<load-balancers></load-balancers>
<lb-configs></lb-configs>
<clusters></clusters>
</domain>

*********************************************************************

Comment by David Zhao [ 15/Oct/12 ]

Hi Pushkar,

This defect exists in 3.1.x, but it is fixed in 4.0 as I said previously. Can you migrate to 4.0 as the solution?





[GLASSFISH-5895] XA in asadmin create-jms-resource Created: 05/Sep/08  Updated: 20/Dec/16  Resolved: 08/May/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 9.1peur2
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: bahadir_g Assignee: Simon Meng
Resolution: Fixed Votes: 2
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: HP


Sub-Tasks:
Key
Summary
Type
Status
Assignee
GLASSFISH-18701 asadmin create-jms-resource subcomman... Sub-task Resolved Mike Fitch  
Issuezilla Id: 5,895

 Description   

The command below creates a non-XA JMS connection factory instead of an XA one
althought it is said XA is default in the documentation.

"asadmin create-jms-resource --host localhost --port 4848 --user admin --restype
javax.jms.QueueConnectionFactory jms/TESTPRO_XAConnFactory"

Another attempt to create an XA JMS connection factory with the following
command fails to create a connection factory also

create-jms-resource --host localhost --port 4848 --user admin
â€"-transaction-support=XATransaction --restype javax.jms.ConnectionFactory
jms/QSDP_XAConnFactory

I couldn't find any additional explanation in the docs and also got no answer
for my question at glassfish forum if I missed something.
So it seems there is no way to create an XA JMS connection factory from CLI
commands instead of Admin GUI.



 Comments   
Comment by sanandal [ 11/Jan/09 ]

"Reclassifying as P4 because this issue is not deemed "must fix" for this v2.1
release whose primary release driver is SailFin.
This issue will be scrubbed after this release and will be given the right
priority for the next release."

Comment by tronda [ 13/Feb/09 ]
      • Issue 5895 has been confirmed by votes. ***
Comment by Tom Mueller [ 25/Jan/11 ]

Cleared the Fix version field since this issue isn't going to be fixed in V3.

Comment by Tom Mueller [ 18/Feb/11 ]

Assigning to correct category (JMS).

Comment by David Zhao [ 14/Feb/12 ]

In 3.1.2, create-jms-resource command does not support parameter -transaction-support.

Comment by Simon Meng [ 04/May/12 ]

The transaction-support attribute can be set properly with property parameter. The following command works fine:
create-jms-resource --restype javax.jms.ConnectionFactory --property transaction-support=XATransaction jms/QSDP_XAConnFactory

This issue should be a document issue. Current glassfish document does not mention that transaction-support and some other attributes can be set in property parameter.

Comment by Simon Meng [ 08/May/12 ]

The required functionality is already in product. The document need be updated properly. See GLASSFISH-18701.





[GLASSFISH-16450] unclear message with typo introduced for endpoint.determine.destinationtype Created: 25/Apr/11  Updated: 20/Dec/16  Resolved: 19/Apr/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 3.1
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: Dies Koper Assignee: Simon Meng
Resolution: Fixed Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

During QL the following message is logged to server.log:

[#|2011-04-25T12:51:19.015-0500|INFO|glassfish3.2|javax.enterprise.resource.jms.com.sun.enterprise.connectors.jms.system|_ThreadID=48;_ThreadName=Thread-1;|end point determine destionation name, Res name: javax.jms.Queue, JNDI name: MessageBean descriptor name :

{3}

|#]

It has a few issues:

1. Third parameter isn't substituted.
2. 'destionation' has a typo.
3. The meaning of the message is not clear at all.
4. Messages defined in LogStrings.properties have to have a message ID; this one has not.

The following message defined in connectors-runtime has the same message key and doesn't have any of these issues:

endpoint.determine.destinationtype=RAR7126: Assuming destination type

{0}

for MDB

{2}

from administered object

{1}

Why not copy it and use it instead?
(In fact, I suppose this message was initially used but wasn't moved when the referring code was moved around?
If endpoint.determine.destinationtype isn't referred to anymore from connectors, why not move it to jms completely?)



 Comments   
Comment by Simon Meng [ 16/Apr/12 ]

Actually, the messages defined in LogStrings.properties have their message ID. The current message ID is JMS013. So the final message string should be:

endpoint.determine.destinationtype=JMS013: Assuming destination type

{0}

for MDB

{2}

from administered object

{1}
Comment by Simon Meng [ 18/Apr/12 ]

Revision: 53551
Time: 2012-04-18 00:59:12 -0700 (Wed, 18 Apr 2012)
Author: simeng_oracle
Path: main/appserver/jms/jms-core/src/main/java/com/sun/enterprise/connectors/jms/system/LogStrings.properties
Message: Fix GLASSFISH-16450 - Change log message for endpoint.determine.destinationtype





[GLASSFISH-17223] System properties differ in config vs cluster and prevent proper jms startup Created: 23/Aug/11  Updated: 20/Dec/16  Resolved: 19/Apr/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 3.1.1
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: sarnoth Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Glassfish 3.1.1 open source release. Java version 1.6.0_26 64 bit. SLES 11.


Attachments: XML File domain.xml     Text File log.txt     Text File server.log    
Tags: 3_1_x-exclude

 Description   

I created a cluster using asadmin create-cluster and passed in system properties using the -systemproperties option. When I log in to the admin console and navigate to Clusters>[cluster name]>Properties I see the property values that I set on the command line. However, if I navigate to Configurations>[cluster name]config>System Properties I see the property values that were present in default-config instead of the ones that I passed in on the command line.

It seems that for the most part this doesn't really matter, and the properties that I see when looking at the cluster are the ones that are getting used. However, things get strange with JMS and it causes a problem. In my configuration I am using embedded JMS. When the brokers try to start I can see that they are passed the JMS_PROVIDER_PORT that is specified under the cluster itself for the port that they should listen on, but they are passed the port that is specified under the config as part of the address list of brokers in the cluster. As a result, they try to connect to the wrong port and never start up properly.



 Comments   
Comment by Satish Kumar [ 14/Dec/11 ]

I tried reproducing this with a setup that is similar to what you have described above, but I am seeing the issue reported above. Can you please attach the domain.xml for your setup along with the GlassFish server.log and the broker logs to help investigate this further?

Comment by sarnoth [ 28/Dec/11 ]

Here are the files you requested. The cluster Test2 is one that I created to demonstrate the bug. The server log and broker log are from the instance Test2-1 of this cluster. I created the cluster with this command:

asadmin --port 2448 create-cluster --systemproperties ASADMIN_LISTENER_PORT=23548:HTTP_LISTENER_PORT=23580:HTTP_SSL_LISTENER_PORT=23581:IIOP_LISTENER_PORT=23537:IIOP_SSL_LISTENER_PORT=23538:IIOP_SSL_MUTUALAUTH_PORT=23539:JAVA_DEBUGGER_PORT=23509:JMS_PROVIDER_PORT=23576:JMX_SYSTEM_CONNECTOR_PORT=23586:OSGI_SHELL_TELNET_PORT=23566 --properties GMS_MULTICAST_TIME_TO_LIVE=10:GMS_TCPSTARTPORT=23600:GMS_TCPENDPORT=23699 --multicastaddress 239.193.205.5 --multicastport 23501 Test2

This is a fresh test using version 3.1.2 b15 to confirm that the bug still exists. In the domain.xml you will also see a cluster named Test1. This is a cluster created like Test2, but I have edited the system properties in Test1-config to make them match what I passed on the command line during creation. JMS works correctly for Test1 but not for Test2.

Comment by David Zhao [ 19/Apr/12 ]

This has been fixed.

Revision:
53574
Time:
04/19/2012 04:11 PM
Author:
liang.x.zhao@oracle.com
Path:
main/appserver/jms/jms-core/src/main/java/com/sun/enterprise/connectors/jms/util/JmsRaUtil.java (trunk)
Message:
Fix GLASSFISH-17223. Add logic to read cluster system property JMS_PROVIDER_PORT when composing MQ url.





[GLASSFISH-15454] delete-resource-adapter-config jmsra fails in cluster Created: 06/Jan/11  Updated: 20/Dec/16  Resolved: 16/Apr/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: None
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: Jagadish Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

http://java.net/jira/browse/GLASSFISH-15062

While trying to fix the above issue,
delete-resource-adapter-config jmsra on a cluster fails with the following exception related to lazy-init.

[#|2011-01-06T10:25:46.374+0530|SEVERE|glassfish3.1|javax.enterprise.system.util.com.sun.enterprise.util.i18n|_ThreadID=32;_ThreadName=Thread-1;|UTIL6550: Error in local string manager - resource bundle is probably missing.
java.util.MissingResourceException: Can't find bundle for base name com.sun.enterprise.connectors.jms.system.LocalStrings, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1250)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:952)
at com.sun.enterprise.util.i18n.StringManagerBase.getResourceBundle(StringManagerBase.java:127)
at com.sun.enterprise.util.i18n.StringManagerBase.getStringWithDefault(StringManagerBase.java:180)
at com.sun.enterprise.util.i18n.StringManagerBase.getStringWithDefault(StringManagerBase.java:206)
at com.sun.enterprise.util.i18n.StringManagerBase.getString(StringManagerBase.java:246)
at com.sun.enterprise.connectors.jms.system.ActiveJmsResourceAdapter.handleRequest(ActiveJmsResourceAdapter.java:2203)
at com.sun.enterprise.v3.services.impl.ServiceInitializerHandler.onAcceptInterest(ServiceInitializerHandler.java:114)
at com.sun.grizzly.SelectorHandlerRunner.handleSelectedKey(SelectorHandlerRunner.java:301)
at com.sun.grizzly.SelectorHandlerRunner.handleSelectedKeys(SelectorHandlerRunner.java:263)
at com.sun.grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:200)
at com.sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:132)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:660)

#]

[#|2011-01-06T10:25:46.375+0530|SEVERE|glassfish3.1|grizzly|_ThreadID=11;_ThreadName=Thread-1;|doSelect exception
java.lang.RuntimeException: No local string defined
at com.sun.enterprise.connectors.jms.system.ActiveJmsResourceAdapter.handleRequest(ActiveJmsResourceAdapter.java:2204)
at com.sun.enterprise.v3.services.impl.ServiceInitializerHandler.onAcceptInterest(ServiceInitializerHandler.java:114)
at com.sun.grizzly.SelectorHandlerRunner.handleSelectedKey(SelectorHandlerRunner.java:301)
at com.sun.grizzly.SelectorHandlerRunner.handleSelectedKeys(SelectorHandlerRunner.java:263)
at com.sun.grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:200)
at com.sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:132)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:660)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.connectors.jms.system.ActiveJmsResourceAdapter.handleRequest(ActiveJmsResourceAdapter.java:2198)
... 8 more
Caused by: java.lang.IllegalStateException: Cannot access PortMapperClientHandler until embedded broker has been started
at com.sun.messaging.jms.blc.LifecycleManagedBroker.getPortMapperClientHandler(LifecycleManagedBroker.java:1977)
at com.sun.messaging.jms.ra.ResourceAdapter.getPortMapperClientHandler(ResourceAdapter.java:2024)
... 13 more

#]

Raising this issue after talking to Satish.

STEPS TO REPRODUCE :

Setup a 2 instance cluster.
Start domain
start cluster
asadmin jms-ping --target "cluster"
asadmin create-resource-adapter-config jmsra
asadmin jms-ping --target "cluster"
asadmin delete-resource-adapter-config jmsra
asadmin jms-ping --target "cluster"

delete-resource-adapter-config command will show the exceptions stated above in server.log.



 Comments   
Comment by Satish Kumar [ 07/Jan/11 ]

In this particular sequence, the RA is unable to restart an embedded broker when lazy-init is enabled since the ports do not appear to be getting feed-up. The first time when create RA config is called, the broker starts correctly. The broker start fails only when delete RA config is called and this only occurs when lazy-init is enabled.

The Workaround is to disable lazy-init by setting it to false for the cluster-config or set jms integration type = LOCAL.

Reducing the priority to Minor since this is not a typical use-case. User's do not require to create or delete resource adapter conifs for JMSRA to use the JMS service. Also, there are a couple of work-arounds for this issue.

Comment by Scott Fordin [ 23/Mar/11 ]

Need more info to add issue to 3.1 Release Notes. Specifically, better description and more detailed explanations of workarounds, including why you might choose one versus the other.

Comment by Chris Kasso [ 18/Apr/11 ]

Removed the RN's tag. The RE indicated this is not a common scenario.

Comment by David Zhao [ 16/Apr/12 ]

Revision:
53520
Time:
04/16/2012 01:54 PM
Author:
liang.x.zhao@oracle.com
Path:
main/appserver/jms/jms-core/src/main/java/com/sun/enterprise/connectors/jms/system/ActiveJmsResourceAdapter.java (trunk)
Message:
Fix GLASSFISH-15454. Add logic for deactivating grizzly proxy when the jmsra is unloaded.





[GLASSFISH-4773] cannot set addresslist-iterations to -1 Created: 15/Apr/08  Updated: 20/Dec/16  Resolved: 29/May/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: v2.1
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: Anissa Lam Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Sub-Tasks:
Key
Summary
Type
Status
Assignee
GLASSFISH-18795 Valid value range for jms service Add... Sub-task Resolved Mike Fitch  
Issuezilla Id: 4,773

 Description   

As reported in the forum,http://forums.java.net/jive/thread.jspa?messageID=268992

using cli cannot set addresslist-iterations to -1.

asadmin set --port 5848 server.jms-service.addresslist-iterations=-1
ADMVAL1045: '-1' is invalid value for addresslist-iterations attribute. Valid
range for this value is from 1 to 2147483638
ADMVAL1070: Change of jms service is rejected.
CLI137 Command set failed.

A bug has filed against admin gui
https://glassfish.dev.java.net/issues/show_bug.cgi?id=4772
to take in -1.
This one is for backend.



 Comments   
Comment by Sivakumar Thyagarajan [ 26/Sep/08 ]

requesting Satish to investigate and fix if requried

Comment by sanandal [ 11/Jan/09 ]

"Reclassifying as P4 because this issue is not deemed "must fix" for this v2.1
release whose primary release driver is SailFin.
This issue will be scrubbed after this release and will be given the right
priority for the next release."

Comment by kumara [ 01/Sep/09 ]

Changing version from 9.1.1 to v2.1 to reflect new name/version.

Comment by Tom Mueller [ 06/Mar/12 ]

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.

Comment by Simon Meng [ 29/May/12 ]

Revision: 54303
Time: 2012-05-28 18:30:07 -0700 (Mon, 28 May 2012)
Author: simeng_oracle
Path: main/appserver/jms/gf-jms-connector/src/main/java/com/sun/enterprise/connectors/jms/config/JmsService.java
Message: Fix GLASSFISH-4773 - Change the min value of addresslist iterations to -1

Now the value can be set to -1 via both cli and admin console.





[GLASSFISH-10887] --force to recreate resources Created: 08/Nov/09  Updated: 20/Dec/16  Resolved: 28/May/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 3.1
Fix Version/s: 4.0_dev

Type: Improvement Priority: Major
Reporter: felipegaucho Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified
Environment:

Operating System: All
Platform: Linux


Sub-Tasks:
Key
Summary
Type
Status
Assignee
GLASSFISH-18764 Add --force option to the manual docs... Sub-task Resolved Gail Risdal  
Issuezilla Id: 10,887
Tags: bj-reviewed-t1

 Description   

Several resources commands like 'create-jms-resource' may have a --force option
to "drop & create" the resource.

Sometimes we need to assure a clean resource on the server, and today we need
two commands to achieve that: delete + create

a simple --force parameter should facilitate that.



 Comments   
Comment by Bill Shannon [ 08/Nov/09 ]

Reassign.

This should probably be split into multiple bugs, one for each command
that needs to be changed.

Comment by Bill Shannon [ 08/Nov/09 ]

.

Comment by Tom Mueller [ 06/Mar/12 ]

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.

Comment by David Zhao [ 28/May/12 ]

Revision:
54298
Time:
05/28/2012 02:50 PM
Author:
liang.x.zhao@oracle.com
Path:
trunk
Message:
GLASSFISH-10887. Add --force to create-jms-resource, create-jms-host and create-jmsdest subCommands.





[GLASSFISH-4053] broker internal error caused by deadlock in the DB Created: 31/Jan/08  Updated: 20/Dec/16  Resolved: 07/Jun/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 9.1peur1
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: shark_ro Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: other
Platform: Other


Attachments: File Util$RetryStrategy.class     Text File Util.class    
Issuezilla Id: 4,053

 Description   

I have encountered a problem on my installation (build b58g-fcs); there were
some messages that were enqueued but they were not received. Upon restarting the
client( that receives the messages) the missing messages were dequeued.

In the broker log I found an error:
[29/Jan/2008:16:38:08 CET] Message Gone, unable to update state of the message
PacketReference[7089-10.11.3.66(d1:75:fc:a1:1d:15)-1-1201621081476]:
com.sun.messaging.jmq.jmsserver.util.BrokerException: [B4015]: Failed to persist
state of interest [consumer:0, type=NONE] for message
7089-10.11.3.66(d1:75:fc:a1:1d:15)-1-1201621081476
at
com.sun.messaging.jmq.jmsserver.persist.jdbc.ConsumerStateDAOImpl.updateState(ConsumerStateDAOImpl.java:436)
at
com.sun.messaging.jmq.jmsserver.persist.jdbc.JDBCStore.updateInterestState(JDBCStore.java:721)
at
com.sun.messaging.jmq.jmsserver.core.PacketReference.delivered(PacketReference.java:1504)
at com.sun.messaging.jmq.jmsserver.core.Session.fillNextPacket(Session.java:705)
at
com.sun.messaging.jmq.jmsserver.service.imq.IMQIPConnection.fillNextPacket(IMQIPConnection.java:2039)
at
com.sun.messaging.jmq.jmsserver.service.imq.IMQIPConnection.writeData(IMQIPConnection.java:1678)
at
com.sun.messaging.jmq.jmsserver.service.imq.IMQIPConnection.process(IMQIPConnection.java:650)
at
com.sun.messaging.jmq.jmsserver.service.imq.OperationRunnable.process(OperationRunnable.java:170)
at
com.sun.messaging.jmq.jmsserver.util.pool.BasicRunnable.run(BasicRunnable.java:493)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.sql.SQLException: [UPDATE MQCONSTATE41SIMQBROKER SET STATE = ?
WHERE MESSAGE_ID = ? AND CONSUMER_ID = ?]: Transaction (Process ID 55) was
deadlocked on lock resources with another process and has been chosen as the
deadlock victim. Rerun the transaction.
at
com.sun.messaging.jmq.jmsserver.persist.jdbc.DBManager.wrapSQLException(DBManager.java:854)
at
com.sun.messaging.jmq.jmsserver.persist.jdbc.ConsumerStateDAOImpl.updateState(ConsumerStateDAOImpl.java:431)
... 9 more

I am using JDBC persistence in SQL server 2005 with SP2



 Comments   
Comment by shark_ro [ 01/Feb/08 ]

Just did a test on ORACLE 10g, no problems experienced.

The following settings were used for SQL server 2005:

imq.persist.jdbc.dbVendor=mssql
imq.persist.jdbc.brokerid=IMQBROKER
imq.persist.jdbc.password=pass
imq.persist.jdbc.opendburl=jdbc\:jtds\:sqlserver\://localhost\:1433/dbname
imq.persist.jdbc.mssql.table.MQTXN41=CREATE TABLE $

{name} (ID BIGINT NOT
NULL,TYPE INTEGER NOT NULL,STATE INTEGER,AUTO_ROLLBACK INTEGER NOT NULL,XID
VARCHAR(256),TXN_STATE IMAGE NOT NULL,TXN_HOME_BROKER IMAGE,TXN_BROKERS
IMAGE,STORE_SESSION_ID BIGINT NOT NULL,EXPIRED_TS BIGINT NOT NULL,ACCESSED_TS
BIGINT NOT NULL,PRIMARY KEY(ID))
imq.persist.jdbc.mssql.table.MQMSG41=CREATE TABLE ${name}

(ID VARCHAR(100) NOT
NULL,MESSAGE IMAGE NOT NULL,MESSAGE_SIZE BIGINT,STORE_SESSION_ID BIGINT NOT
NULL,DESTINATION_ID VARCHAR(100),TRANSACTION_ID BIGINT,CREATED_TS BIGINT NOT
NULL,PRIMARY KEY(ID))
imq.persist.jdbc.mssql.table.MQMSG41.index.IDX1=CREATE INDEX $

{index} ON ${name}
(STORE_SESSION_ID, DESTINATION_ID)
imq.persist.jdbc.mssql.table.MQCREC41=CREATE TABLE ${name} (RECORD IMAGE NOT
NULL,CREATED_TS BIGINT NOT NULL)
imq.persist.jdbc.mssql.table.MQBKR41=CREATE TABLE ${name} (ID VARCHAR(100) NOT
NULL,URL VARCHAR(100) NOT NULL,VERSION INTEGER NOT NULL,STATE INTEGER NOT
NULL,TAKEOVER_BROKER VARCHAR(100),HEARTBEAT_TS BIGINT,PRIMARY KEY(ID))
imq.persist.jdbc.mssql.table.MQCON41=CREATE TABLE ${name} (ID BIGINT NOT
NULL,CLIENT_ID VARCHAR(1024),DURABLE_NAME VARCHAR(1024),CONSUMER IMAGE NOT
NULL,CREATED_TS BIGINT NOT NULL,PRIMARY KEY(ID))
imq.persist.store=jdbc
imq.persist.jdbc.mssql.table.MQCONSTATE41=CREATE TABLE ${name} (MESSAGE_ID
VARCHAR(100) NOT NULL,CONSUMER_ID BIGINT NOT NULL,STATE INTEGER,TRANSACTION_ID
BIGINT,CREATED_TS BIGINT NOT NULL,PRIMARY KEY(MESSAGE_ID, CONSUMER_ID))
imq.persist.jdbc.mssql.table.MQDST41.index.IDX1=CREATE INDEX ${index}

ON $

{name}
(STORE_SESSION_ID)
imq.persist.jdbc.mssql.table.MQSES41=CREATE TABLE ${name}

(ID BIGINT NOT
NULL,BROKER_ID VARCHAR(100) NOT NULL,IS_CURRENT INTEGER NOT NULL,CREATED_BY
VARCHAR(100) NOT NULL,CREATED_TS BIGINT NOT NULL,PRIMARY KEY(ID))
imq.persist.jdbc.mssql.table.MQCONSTATE41.index.IDX1=CREATE INDEX $

{index} ON
${name} (TRANSACTION_ID)
imq.persist.jdbc.mssql.table.MQPROP41=CREATE TABLE ${name} (PROPNAME
VARCHAR(100) NOT NULL,PROPVALUE IMAGE,PRIMARY KEY(PROPNAME))
imq.persist.jdbc.mssql.table.MQTXN41.index.IDX1=CREATE INDEX ${index}

ON $

{name}
(STORE_SESSION_ID)
imq.persist.jdbc.user=username
imq.persist.jdbc.mssql.table.MQVER41=CREATE TABLE ${name}

(STORE_VERSION INTEGER
NOT NULL,LOCK_ID VARCHAR(100))
imq.persist.jdbc.needpassword=true
imq.persist.jdbc.mssql.table.MQDST41=CREATE TABLE $

{name}

(ID VARCHAR(100) NOT
NULL,DESTINATION IMAGE NOT NULL,IS_LOCAL INTEGER NOT NULL,CONNECTION_ID
BIGINT,CONNECTED_TS BIGINT,STORE_SESSION_ID BIGINT,CREATED_TS BIGINT NOT
NULL,PRIMARY KEY(ID))
imq.persist.jdbc.driver=net.sourceforge.jtds.jdbc.Driver

Comment by rampsarathy [ 06/Feb/08 ]

This is an MQ product bug

Comment by rampsarathy [ 20/Mar/08 ]

]This is an open mq product issue , will be fixed in the open mq product. No fix
is required in glassfish.
Keeping the bug open for tracking purpose only.

Comment by harpreet [ 03/Apr/08 ]

Fix not expected/required for 9.1.1 - moving target release for 9.2

Comment by rampsarathy [ 29/May/08 ]

Assigning to Satish to follow-up on the OpenMQ bug

Comment by shark_ro [ 28/Oct/08 ]

I have managed to isolate the reason and produce a fix. I did some extensive
testing and this looks to be robust (4 queues with 4000 1MB messages). The
problem was caused by the retry policy which basically does not work for
anything but ORACLE and HADB. During testing whenever the deadlock appeared it
was gone after the first retry
Please find the fix for Util$RetryStrategy.class below.
SQLException ex = (SQLException)cause;
int errorCode = ex.getErrorCode();

if ( dbMgr.isHADB() )

{ retry = errorCode == 224 // The operation timed out || errorCode == 2078 // Wrong dictionary version no || errorCode == 2080 // Too many locks set || errorCode == 2096 // Too many locks held concurrently || errorCode == 2097 // Upgrade from shared to exclusive lock failed || errorCode == 4576 // Client held transaction open for too long || errorCode == 12815 // Table memory space exhausted || errorCode == 25012 // Timed out waiting for reply from peer || errorCode == 25017 // No connection to server || errorCode == 25018 // Lost connection to the server ; }

else if ( dbMgr.isOracle() )

{ retry = errorCode == 00020 // Maximum number of processes num exceeded || errorCode == 00054 // Resource busy and acquire with NOWAIT specified || errorCode == 17008 // Closed Connection || errorCode == 17009 // Closed Statement || errorCode == 17016 // Statement timed out || errorCode == 12535 // TNS:operation timed out ; }

else

{ String msg = ex.getMessage(); retry = (msg != null) && (msg.toLowerCase().indexOf( "timed out" ) > 0 || msg.toLowerCase().indexOf( "rerun the transaction" )>0); }

The code assures that if a deadlock is detected the operation will be retried
(like sql server suggests). This can be made dependent on an error code like for
ORACLE and HADB but I would not do this before a DAO hierarchy for SQL server is
created.

If you could make the factory for DAO more open (permit it to load custom
classes) I and thousands of MSSQL users would be grateful. The easiest way for
this problem to be eliminated would be to provide explicit locking hints in the
queries hence the need for a specific class.

Anyway, in the meantime, the dirty hack provided will allow for RELIABLE sql
server persistence(no more Message Gone)

Comment by shark_ro [ 28/Oct/08 ]

Created an attachment (id=2021)
4.1 broker class modified

Comment by shark_ro [ 28/Oct/08 ]

Created an attachment (id=2022)
4.1 patch

Comment by sanandal [ 11/Jan/09 ]

"Reclassifying as P4 because this issue is not deemed "must fix" for this v2.1
release whose primary release driver is SailFin.
This issue will be scrubbed after this release and will be given the right
priority for the next release."

Comment by amyk [ 06/Jun/12 ]

The root cause of the deadlock is likely MQ JDBC store bug 13068829 which has been fixed in MQ 4.4u2p5 and 5.0, and in addition, the retry SQLException message "rerun the transaction", suggested by shark ro in above comment, has been added to MQ 5.0. The misleading MQ broker error message "Message Gone, unable .." has already been corrected in MQ 5.0.

Comment by Simon Meng [ 07/Jun/12 ]

The related MQ bug has been fixed. So we can close this one.





[GLASSFISH-4437] Unable to connect to remote JMS service using connection factory resource Created: 15/Mar/08  Updated: 20/Dec/16  Resolved: 30/May/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 9.1peur1
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: joedj Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: File jms-weirdness.tgz    
Issuezilla Id: 4,437
Status Whiteboard:

as911-na


 Description   

Messages directed at a remote JMS service are delivered to the embedded broker
instead.

Attached is a test that demonstrates the problem, in the form of a
jms-sender.war and run.sh shell script to create and configure the required
domains, deploy the webapp and hit the test URL. run.sh depends on sh, asadmin,
tail and curl.

Under Glassfish v2, run.sh outputs:
Sender log:[15/Mar/2008:21:19:53 EST] [B1132]: Autocreating destination
jms_aTopic [Topic]
Receiver log:[15/Mar/2008:21:19:09 EST] [B1161]: Initialization of instance has
completed, exiting

Under Glassfish v1, the expected result is output:
Sender log:[15/Mar/2008:21:17:46 EST] [B1065]: Accepting:
guest@127.0.0.1:53857->jms:53853. Count: service=1 broker=1
Receiver log:[15/Mar/2008:21:17:53 EST] [B1132]: Autocreating destination
jms_aTopic [Topic]

I suspect that I am simply missing something obvious, but will wait to
investigate further until someone can tell me whether the test should work or
not. Apologies if this is not the correct forum for raising issues like this
without first being convinced that there is a bug.

The real application has both a jms/InternalConnectionFactory for embedded
messaging and a jms/RemoteConnectionFactory, so configuring JMS such that only
remote communication is possible is not an option.



 Comments   
Comment by joedj [ 15/Mar/08 ]

Created an attachment (id=1382)
Test case; use ./run.sh

Comment by joedj [ 15/Mar/08 ]

Argh. This issue is resolved now, I just had to specify the default password
explicitly after creating the connection factory, using:

asadmin set
server.resources.connector-connection-pool.jms/RemoteConnectionFactory.property.Password=guest

Interestingly, providing the password to create-jms-resource as a property:

asadmin create-jms-resource --restype javax.jms.ConnectionFactory --property
'Password=guest:AddressList=localhost\:7677' jms/RemoteConnectionFactory

does not work, even after a server restart, although 'asadmin help
create-jms-resource' suggests that it should, and the Password property does
show up in the admin console...

Comment by joedj [ 16/Mar/08 ]

Scratch that; this issue is NOT resolved.

Adding the:

asadmin set
server.resources.connector-connection-pool.jms/RemoteConnectionFactory.property.Password=guest

makes things work UNTIL the jms-sender domain is restarted, at which point it
reverts back to incorrectly creating the jms_aTopic destination in the embedded
broker rather than the remote broker.

To see this behaviour, add:

asadmin stop-domain jms-sender
asadmin start-domain jms-sender

to run.sh, after the "asadmin deploy jms-sender.war" line.

Comment by joedj [ 19/Mar/08 ]

It may be worth pointing out that when things are working, the objects I get are
of type com.sun.messaging.jms.ra.ConnectionFactoryAdapter and
com.sun.messaging.jms.ra.ConnectionAdapter.

When they are not working, I get a
com.sun.messaging.jms.ra.DirectConnectionFactory and a
com.sun.messaging.jms.ra.DirectConnection.

Comment by rampsarathy [ 19/Mar/08 ]

Looks like this is the same as issue 3462, let me know if you see something else
that iam missing

Comment by joedj [ 19/Mar/08 ]

Thanks,

Could well be the same issue, your suggested fix of setting the JMS service type
to LOCAL certainly works for the most part.

For completeness (I don't see this mentioned as a work-around in issue 3462),
the test app can be modified to demonstrate this by running:

asadmin set server.jms-service.type=LOCAL

after creating the jms-sender domain.

You still need to fiddle with the connector-connection-pool (e.g. by setting the
UserName or Password property) before it will work without a domain restart. If
the jms-sender domain is restarted after creating the connection factory
resource, all is well even without the properties. This is the case regardless
of whether the domain is restarted after setting the jms-service type to LOCAL.

Comment by rampsarathy [ 14/May/08 ]

assigning to satish,
could you please verify if the problem exists in the latest builds

Comment by harpreet [ 12/Jun/08 ]

Approved for v2.1

Comment by harpreet [ 20/Oct/08 ]

removing from approved list as issue not critical to release.

Comment by sanandal [ 11/Jan/09 ]

"Reclassifying as P4 because this issue is not deemed "must fix" for this v2.1
release whose primary release driver is SailFin.
This issue will be scrubbed after this release and will be given the right
priority for the next release."

Comment by Tom Mueller [ 06/Mar/12 ]

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.

Comment by Simon Meng [ 30/May/12 ]

The issue can't be reproduced with glassfish 4.0_b38. Run the reproducer, messages are delivered to the remote broker as expected.





[GLASSFISH-6579] Admin Console does not decode system property ${JMS_PROVIDER_PORT} Created: 19/Oct/08  Updated: 20/Dec/16  Resolved: 29/May/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: v2.1
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: ijuma Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 6,579

 Description   

Found in Glassfish v2.1-b54.

Steps to reproduce:

(1) Create a cluster as described here:
http://blogs.sun.com/bloggerkedar/entry/a_recipe_to_create_clusters

(2) At this point the cluster (along with its instances are started), so login
to the Admin Console (localhost:4848).

(3) Go to Configurations->c1-config->Java Message Service->Physical
Destinations. There will be an error that says "Error An error has occurred
An error occurred while listing JMS physical destinations. Please check the
server log for more information".

(4) If you go to Configurations->c1-config->Java Message Service->JMS
Hosts->default_JMS_host, you will see that Port says $

{JMS_PROVIDER_PORT}

.
Change that to the actual value of the port shown in System Properties (in this
case 37676).

(5) Go back to Physical Destinations. The error is gone.

The conclusion is that somewhere the System property is not being converted into
the actual port. The workaround is simple once you know what's wrong, but it can
be very time-consuming until you figure it out.



 Comments   
Comment by Anissa Lam [ 19/Oct/08 ]

This is not a GUI issue. GUI does the following,
invoke: objectName = com.sun.appserv:type=resources,category=config , method =
listPhysicalDestinations
and backend throws the exception.

This is a duplicate of bug# 6745983 although i don't know what is the equivalent
Issue Tracker number.

Transferring to jms.

Comment by sanandal [ 11/Jan/09 ]

"Reclassifying as P4 because this issue is not deemed "must fix" for this v2.1
release whose primary release driver is SailFin.
This issue will be scrubbed after this release and will be given the right
priority for the next release."

Comment by kumara [ 01/Sep/09 ]

Changing version from 9.1.1 to v2.1 to reflect new name/version.

Comment by Tom Mueller [ 06/Mar/12 ]

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.

Comment by Simon Meng [ 29/May/12 ]

The issue can't be reroduced with version 4.0_b38. I really see the admin console does not decode system property $

{JMS_PROVIDER_PORT}

. But there is no error message. It works fine.





idletimeoutinseconds accepts value greater than the specified range (GLASSFISH-6914)

[GLASSFISH-18794] Valid value range for jms connection factory resource Idel Timeout attribute Created: 11/Jun/12  Updated: 20/Dec/16

Status: Open
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Sub-task Priority: Major
Reporter: Simon Meng Assignee: shreedhar_ganapathy
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The glassfish document does not mention the valid value range for jms connection factory resource Idle Timeout attribute. The exact value range is [1, 2147483647]

You can create a jms connection factory in following location. Then you can see the Idle Timeout attribute.
http://localhost:4848 --> Common Tasks --> Resources --> JMS Resources --> Connection Factories






[GLASSFISH-18796] Placeholder appears in error message Created: 11/Jun/12  Updated: 20/Dec/16  Resolved: 13/Jun/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: Simon Meng Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

During manule testing, I tried to execute the following command:
asadmin create-jms-resource --restype javax.jms.ConnectionFactory --property idle-timeout-in-seconds=-2 jms/MyCF

I got the following error message:
remote failure: Unable to create connection pool.
Connector connection pool jms/MyCF creation failed.

{1}

javax.validation.ConstraintViolationException: Constraints for this ConnectorConnectionPool configuration have been violated: on property [ idleTimeoutInSeconds ] violation reason [ must be greater than or equal to 1 ]
Command create-jms-resource failed.

The error message includes a placeholder. The related parameter is not substituted.



 Comments   
Comment by Simon Meng [ 13/Jun/12 ]

Revision: 54564
Time: 2012-06-12 18:20:20 -0700 (Tue, 12 Jun 2012)
Author: simeng_oracle
Changed paths:
/trunk/main/appserver/connectors/admin/src/main/java/org/glassfish/connectors/admin/cli/CreateConnectorConnectionPool.java
/trunk/main/appserver/connectors/admin/src/main/java/org/glassfish/connectors/admin/cli/LocalStrings.properties
Message: Fix GLASSFISH-18796 - Remove the redundant placeholder in log message





[GLASSFISH-18814] The default values of "Initial and Minimum Pool Size" and "Maximum Pool Size" in created jms resource by admin-gui are different from the values of created jms resource by admin-console. Created: 20/Jun/12  Updated: 20/Dec/16  Resolved: 26/Feb/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: Jeremy_Lv Assignee: David Zhao
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows XP


Attachments: Java Source File CreateJMSResource.java     Text File CreateJMSResource.patch    

 Description   

[Bug Description]
The default values of "Initial and Minimum Pool Size" and "Maximum Pool Size" in created jms resource
by GUI are different from the values of created jms resource by admin-console.

[Operations]
1、login admin-gui and open the page called "JMS Connection Factories", and then create a new jms resource
called default1.

2、create a jms resource called default2 on admin-console by "asadmin create-jms-resource --restype javax.jms.TopicConnectionFactory default2"

3、compare default1with default2 and you will find the default values of "Initial and Minimum Pool Size" and
"Maximum Pool Size" are different.

[affected versions ]
1 4.0_b41
2 gf's trunk until 2012/06/15



 Comments   
Comment by Jeremy_Lv [ 20/Jun/12 ]

I have revised this issue in the latest version of gf V4.0_b41.
The attachment is my patch. Please review and check it.

Comment by David Zhao [ 18/Sep/12 ]

This defect depends on GLASSFISH-19051.

Comment by Nigel Deakin [ 15/Feb/13 ]

In accordance with the project triage guidelines this is not needed for 4.0 and so has been deferred until 4.0.1. Setting "fix version" accordingly.

Comment by David Zhao [ 26/Feb/13 ]

Unified the default properties of jms connection factory which are created by asadmin, admin gui, and the default system jms connection factory to be:

max-pool-size="250"
steady-pool-size="1"

As what was used to be in asadmin subcommand create-jms-resource.

Comment by Jeremy_Lv [ 26/Feb/13 ]

David:

Thanks to confirm about it

Jeremy

Comment by Anissa Lam [ 26/Feb/13 ]

Does this mean that the connection pool created using create-jms-resource and create-connector-connection-pool will have different default value ?
There is 2 minor issues here:

1. After the jms-connection-factory is created (by calling create-jms-resource), the user will also see the pool under connector-connection-pools, and if they press the 'Default' button in the connector-connection-pool page, it will be changed to the default value of connector-connection-pool.

2. With the 'GUI' workaround you put in, it means the console is hard-coding the default value, which is something that the console never done. This is because If the backend changes the default value, console will be showing the wrong value.

Maybe you can provide a command to get the default value of jms-resource and i can call that to get the default value to show to user in the create connection factory page, and also call that when user presses the 'load defaults' button after the creation.

Comment by David Zhao [ 28/Feb/13 ]

Does this mean that the connection pool created using create-jms-resource and create-connector-connection-pool will have different default value ?
There is 2 minor issues here:

Yes. the connector connection pool created by create-jms-resource asadmin subcommand has different default values of max-pool-size and steady-pool-size than create-connector-connection-pool. This is not new and it had been there for a long time. I guess the reason might be that in common jms needs more connections than the default max-pool-size of create-connector-connection-pool.

1. After the jms-connection-factory is created (by calling create-jms-resource), the user will also see the pool under connector-connection-pools, and if they press the 'Default' button in the connector-connection-pool page, it will be changed to the default value of connector-connection-pool.

I just realized the "Load Defaults" button in the admin gui. Yes, that is a problem, but as I mentioned previously it is not new for the connector connection pool which are created by create-jms-resource asadmin subcommand. This can be addressed when the gui changes to use create-jms-resource instead of create-connector-connection-pool in the future.

2. With the 'GUI' workaround you put in, it means the console is hard-coding the default value, which is something that the console never done. This is because If the backend changes the default value, console will be showing the wrong value.

This is new introduced because I hardcoded max-pool-size and steady-pool-size for the New JMS Connection Factory page for this JIRA issue. I take the hardcoding in jsf as a temporary solution for this release. A better solution should be GUI migrating to call REST create-jms-resource directly in future releases.

Maybe you can provide a command to get the default value of jms-resource and i can call that to get the default value to show to user in the create connection factory page, and also call that when user presses the 'load defaults' button after the creation.

The asadmin subcommand create-jms-resource should be enhanced for admin gui getting default values, I filed GLASSFISH-19737 for that.





[GLASSFISH-6604] command fails to accept --property imqDestinationName=quote.< as destination name Created: 21/Oct/08  Updated: 20/Dec/16  Resolved: 06/Jun/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: v2.1
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: sankarpn Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified
Environment:

Operating System: Solaris
Platform: All


Sub-Tasks:
Key
Summary
Type
Status
Assignee
GLASSFISH-18785 Check invalid characters when creatin... Sub-task Open Anissa Lam  
Issuezilla Id: 6,604

 Description   

9.1.1 B56

asadmin create-jms-resource --user admin --port 4848 --echo --property
"imqDestinationName=quote.<" --restype javax.jms.Topic jms/basic/topic1
create-jms-resource --interactive=true --user admin --terse=false --enabled=true
--property imqDestinationName=quote.< --host localhost --target server
--echo=true --port 4848 --restype javax.jms.Topic jms/basic/topic1
Please enter the admin password>
Destination Resource jms/basic/topic1 has an invalid destination name quote.<
CLI137 Command create-jms-resource failed.



 Comments   
Comment by sanandal [ 11/Jan/09 ]

"Reclassifying as P4 because this issue is not deemed "must fix" for this v2.1
release whose primary release driver is SailFin.
This issue will be scrubbed after this release and will be given the right
priority for the next release."

Comment by kumara [ 01/Sep/09 ]

Changing version from 9.1.1 to v2.1 to reflect new name/version.

Comment by David Zhao [ 15/Feb/12 ]

In GlassFish v3, the exception thrown from validateDestinationResourceProps() is not caught properly in CreateJmsResource.execute(AdminCommandContext context) method, which should be fixed.

"<" is not a valid character for the destination name of MQ.

Comment by Tom Mueller [ 06/Mar/12 ]

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.

Comment by David Zhao [ 06/Jun/12 ]

Reversion 54464.

create-jms-resource command should check destination name for invalid characters.





[GLASSFISH-18436] Unable to send compressed JMS message from client to Glassfish Created: 01/Mar/12  Updated: 20/Dec/16  Resolved: 06/Jun/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: v3.0.1, 3.1.2_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: mszalbach Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Solaris 32-bit, linux Ubuntu 32-bit, Java 1.6_21/30


Attachments: Zip Archive JmsCompressionTest.zip    
Issue Links:
Related
is related to MQ-155 Direct Broker does not implement mess... Closed

 Description   

I have encountered a problem when sending compressed JMS ObjectMessages from a client to Glassfish. In the GLassfish log file we see a "java.io.StreamCorruptedException: invalid stream header: 789C5BF3" exception.
I did not have this problem when changing the MQ broker to LOCAL/REMOTE in Glassfish.
Further analysis shows that the client and the LOCAL/REMOTE broker sends there jms messages as com.sun.messaging.jmq.jmsclient.ObjectMessageImpl. The embedded MQ broker uses com.sun.messaging.jms.ra.DirectObjectPacket. The message classes are the same for compressed and uncompressed. However when using compressed messages the embedded broker could not deserialize it.

We also tested this with Glassfish v3.1.2. When we use a TextMessage instead of ObjectMessage, the message can be processed but the Text is corrupted.

The problem can be reproduced with the attached maven project. You need to create a JMS queue with name "TestQueue" and deploy the ejb jar file. The UnitTest can be used to send a compressed and uncompressed message to Glassfish. In the server.log you will get the StreamCorruptedException for the compressed message.



 Comments   
Comment by Nigel Deakin [ 09/Mar/12 ]

This is the same as MQ-155

Comment by jthoennes [ 19/May/12 ]

Hello,

with the closure of MQ-155 this issue can be also closed.
What is the FixVersion?

Cheers, Jörg

Comment by David Zhao [ 06/Jun/12 ]

The fix in bundled MQ goes into GF b41.

Comment by jthoennes [ 06/Jun/12 ]

In reply to comment #3:
> The fix in bundled MQ goes into GF b41.

Thanks, will this be MQ 4.3 or MQ 5.0?

Comment by David Zhao [ 06/Jun/12 ]

Referring to /trunk/main/pom.xml, it should be 5.0 by "<mq.version>5.0-002</mq.version>".

Comment by jthoennes [ 06/Jun/12 ]

In reply to comment #5:
> Referring to /trunk/main/pom.xml, it should be 5.0 by
> "<mq.version>5.0-002</mq.version>".

Thanks, David.





[GLASSFISH-18819] Glassfish/mq dosen't work normally after setting the port of mq broker into "0" Created: 22/Jun/12  Updated: 20/Dec/16  Resolved: 09/Jul/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.1

Type: Improvement Priority: Major
Reporter: Jeremy_Lv Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows Xp


Attachments: Java Source File Broker.java    

 Description   

[Bug Description]
Glassfish/mq dosen't work normally after setting the port of mq broker into "0"

[Operations]
1、Setting the port of mq broker by executing "%GF_HOME%\mq\bin\imqbrokerd -port 0"
Note:%GF_HOME% is Glassfish v4 Install Directory.

2、After executing "%GF_HOME%\mq\bin\imqcmd list svc -b localhost:0", the following error
message appeared.

----------------------------------------------------------------------------
Warming: [C4003]: Error occurred on connection creation [localhost:0]. - cause: jav
a.net.ConnectException: connect: Address is invalid on local machine, or port is
not valid on remote machine
Error while connecting to the broker on host 'localhost' and port '0'.
com.sun.messaging.jms.JMSException: [C4003]: Error occurred on connection creati
on [localhost:0]. - cause: java.net.ConnectException: connect: Address is invali
d on local machine, or port is not valid on remote machine
Please verify that there is a broker running on the specified host and port or
use the '-b' option to specify the correct broker host and port.
----------------------------------------------------------------------------

[My Suggestion]
I think that firstly, mq should not allow setting the port of mq broker as "0", secondly,when user
sets the port of mq broker as "0", mq should give a error message, for example,

"[B4027]: Invalid property value: port=0" in the admin-console

[Affected versions ]
1 4.0_b42
2 gf's trunk until 2012/06/21



 Comments   
Comment by Jeremy_Lv [ 22/Jun/12 ]

This issue is occurred in glassfish v4.0_b41,however, it's related to the component of mq.
The revised the code as follows:

[Source Directory]
mq-broker\broker-core\src\main\java\com\sun\messaging\jmq\jmsserver\Broker.java

[Diff]
mq-broker\broker-core\src\main\java\com\sun\messaging\jmq\jmsserver\Broker.java
===================================================================
@@ -1486,13 +1486,20 @@

  • if (++n >= args.length)
    + if (++n >= args.length)
    throw new IllegalArgumentException("missing port");
    + try { + checkCmdPortValue( args[n] ); + }

    + catch ( IllegalArgumentException e )

    { + printErr( e.getMessage() ); + throw e; + }

@@ -2317,4 +2324,19 @@
"#topic.create.allow.user=*\n" +
"##############################################\n";
+
+ private void checkCmdPortValue( String p ) {
+ // port range check
+ if ( p != null ) {
+ try {
+ int port = Integer.parseInt(p);
+ if ( ( port <= 0 ) || ( 65535 < port ) )

{ + throw new IllegalArgumentException( rb.getKString(rb.X_BAD_PROPERTY_VALUE, "port=" + p)); + }

+ } catch (NumberFormatException e)

{ + throw new IllegalArgumentException( rb.getKString(rb.X_BAD_PROPERTY_VALUE, "port=" + p)); + }

+ }
+ }
+

[Revised Version]
<mq.version>5.0-002</mq.version>

I have uploaded my revised java file to the attachment.

Comment by TangYong [ 22/Jun/12 ]

Now, mq trunk source seemed not to be checkouted , I also want to know how to checkout the mq trunk source nowaday.

Comment by David Zhao [ 09/Jul/13 ]

Created MQ-321 for it because it is MQ issue instead of GlassFish issue.





[GLASSFISH-18828] The error message shouldn't be output when update the broker by excuting "%GF_HOME%\mq\bin\imqcmd update bkr -o imq.system.max_size=100b" successfully Created: 22/Jun/12  Updated: 20/Dec/16  Resolved: 01/Jul/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.1

Type: Bug Priority: Major
Reporter: Jeremy_Lv Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows XP


Attachments: Java Source File DestinationManagerConfig.java    
Issue Links:
Dependency
depends on MQ-306 Deal with error messages when excutin... Open

 Description   

[Bug Description]
The error message shouldn't be output when update the broker by excuting "%GF_HOME%\mq\bin\imqcmd update bkr -o imq.system.max_size=100b" successfully

[Operations]
1、Setting the mq property by executing "%GF_HOME%\mq\bin\imqbrokerd -Dimq.system.max_size=100m" in an
admin-console called "console1". There's no error messages output in console1
Note:%GF_HOME% is Glassfish v4 Install Directory.

2、After executing "%GF_HOME%\mq\bin\imqcmd update bkr -o imq.system.max_size=100b" in another admin-console
called "console2" successfully, the following error message output in console1.

===========================================================================
IMQ: ERROR: DestinationManagerConfig?: cannot parse internal value of MaxTotalMsgBytes?: java.lang.NumberFormatException?: For input string: "100b"
IMQ: WARNING: DestinationManagerConfig?: Problem encountered while getting attribute MaxTotalMsgBytes?:
java.lang.NumberFormatException?: For input string: "100m":
java.lang.NumberFormatException?: For input string: "100m"
IMQ: ERROR: DestinationManagerConfig? notification jmx.attribute.change: encountered problem while getting old
value of attribute MaxTotalMsgBytes?: javax.management.MBeanException
===========================================================================

[My Suggestion]
when excuting "%GF_HOME%\mq\bin\imqcmd update bkr -o imq.system.max_size=100b" successfully in
a console, the error message shouldn't be output in another admin-console.

[Affected versions ]
1 4.0_b41
2 gf's trunk until 2012/06/22



 Comments   
Comment by Jeremy_Lv [ 22/Jun/12 ]

This issue is occurred in glassfish v4.0_b41,however, it's related to the component of mq.
The revised the code as follows:

[Source Directory]
mq-broker\broker-core\src\main\java\com\sun\messaging\jmq\jmsserver\management\mbeans\MessageManagerConfig.java

[Diff]
Index: mq-broker\broker-core\src\main\java\com\sun\messaging\jmq\jmsserver\management\mbeans\MessageManagerConfig.java
===================================================================
@@ -478,5 +478,6 @@
try

{ - l = new Long(s); + SizeString ss = new SizeString(s); + l = new Long(ss.getBytes()); }

catch (Exception e)

{ handleGetterException( @@ -764,9 +765,10 @@ }

else if (name.equals("imq.system.max_size")) {
try

{ - newVal = Long.valueOf(value); + SizeString ss = new SizeString(value); + newVal = new Long(ss.getBytes()); }

catch (NumberFormatException nfe) {
logger.log(Logger.ERROR,

[Revised Version]
<mq.version>5.0-002</mq.version>

I have uploaded my revised java file to the attachment.

Comment by Nigel Deakin [ 15/Feb/13 ]

Logging this as an exception in the broker log is fine. The reporter describes this as "another admin-console", but this is simply the broker log and is a perfectly appropriate place to log the error.

So the only question is whether this error should additionally be reported back to the imqadmin command.

In this particular case a NumberFormatException is detected in the broker in DestinationManagerConfig.update, in the block of code that handles name.equals("imq.system.max_size"). This catches the NumberFormatException and logs it in the broker log. However it doesn't pass any error back to the client.

Note that this problem isn't limited to this particular property: there are lots of other places where exceptions are caught when handling updates to broker properties, and none of them are reported back to the client.

One way to report the error back to the client would to simply rethrow the NumberFormatException. This will be caught in adminDataHandler.handle. It will cause a stack trace to be logged in the broker log, which is unnecessary here, so we should do better than this.

A better possibility would be to throw a more specific exception up to UpdateBrokerPropsHandler.handle, which can then explicitly configure an appropriate reply message.

Note however that any change must apply to all failures logged in this handler, not the specific failure reported here.

Comment by Nigel Deakin [ 15/Feb/13 ]

In accordance with the project triage guidelines this is not needed for 4.0 and so has been deferred until 4.0.1. Setting "fix version" accordingly.

Comment by David Zhao [ 06/Jun/13 ]

Created MQ-306 for tracking.





[GLASSFISH-6914] idletimeoutinseconds accepts value greater than the specified range Created: 11/Dec/08  Updated: 20/Dec/16  Resolved: 11/Jun/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: v2.1
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: dpk Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified
Environment:

Operating System: SunOS
Platform: All


Sub-Tasks:
Key
Summary
Type
Status
Assignee
GLASSFISH-18794 Valid value range for jms connection ... Sub-task Open shreedhar_ganapathy  
Issuezilla Id: 6,914
Tags: bj-reviewed-t1

 Description   

Build-b60b

Steps to reproduce from the NB IDE:
1.Register GFv2.1 in the NB and start the server.
2.Create a web application.
3.Right click on the web application, select New/other/GlassFish/JMS Resource.
4.Create JMS resource of type connector resources.
5.Right click on the web application select Undeploy&Deploy
6.Right click on the deployed JMS resource and select
properties/IdleTimeOutInSeconds(Select Server/GlassFish
V2/Resource/JMS Resource/ConnectionFactory/)
7.Set IdleTimeOutInSeconds value to "ZERO"
8.See the Validation error in the server.log and its range(1 to 2147483638)
9.Now set IdleTimeOutInSeconds value to 2147483647

Issue :
-If you set IdleTimeOutInSeconds value to "ZERO", you will get
Validation error: [ADMVAL1045: '0' is invalid value for idle-timeout-in-seconds
attribute. Valid range for this value is from 1 to 2147483638]
ADM1041:Sent the event to instance:[ResourceDeployEvent – redeploy
ccp/jms/myQueueConnectionRsources]
MQJMSRA_MF1101: setPassword:NOT setting default value
CORE5008: Resource Redeployed: [ccp:jms/myQueueConnectionRsources].

-But it accepts the value range up to 2147483647
-See the netIssue http://www.netbeans.org/issues/show_bug.cgi?id=134653



 Comments   
Comment by sanandal [ 11/Jan/09 ]

"Reclassifying as P4 because this issue is not deemed "must fix" for this v2.1
release whose primary release driver is SailFin.
This issue will be scrubbed after this release and will be given the right
priority for the next release."

Comment by kumara [ 01/Sep/09 ]

Changing version from 9.1.1 to v2.1 to reflect new name/version.

Comment by David Zhao [ 15/Feb/12 ]

The parameter idleTimeoutInSeconds is not sync between CreateJmsResource and ConnectorConnectionPool.

Comment by Tom Mueller [ 06/Mar/12 ]

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.

Comment by Simon Meng [ 07/Jun/12 ]

I reproduced this issue with GF version 4.0_b38. I executed the following command to see what is the specified range.
asadmin set resources.connector-connection-pool.myConnectionFactory.idle-timeout-in-seconds=-1

The error message is javax.validation.ConstraintViolationException: Constraints for this ConnectorConnectionPool configuration have been violated: on property [ idleTimeoutInSeconds ] violation reason [ must be greater than or equal to 1 ]

The error message does not show what is the specified range. It only shows the min value. Currently, it really accepts values greater than 2147483647. It seems the reasonable range should be [1, 2147483647].

Comment by Simon Meng [ 11/Jun/12 ]

Revision: 54535
Time: 2012-06-10 23:57:21 -0700 (Sun, 10 Jun 2012)
Author: simeng_oracle
Changed paths:
/trunk/main/appserver/connectors/connectors-internal-api/src/main/java/org/glassfish/connectors/config/ConnectorConnectionPool.java
/trunk/main/appserver/jms/gf-jms-connector/src/main/java/com/sun/enterprise/connectors/jms/config/JmsService.java
Message: Fix GLASSFISH-6914 - Add maximum value constraint for idle timeout attribute





[GLASSFISH-16039] JMS, problem with destination sources having JNDI-name with forward-slash Created: 17/Feb/11  Updated: 20/Dec/16  Resolved: 06/Jun/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: None
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: Jorgen Ringen Assignee: David Zhao
Resolution: Duplicate Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows 7 32 bit, jdk1.6.0_24


Tags: bj-reviewed

 Description   

When I create a JMS Destination Resource with a JNDI-name that includes a forward-slash I get

java.lang.RuntimeException: EJB Container initialization error
...
Caused by: java.lang.IllegalArgumentException: MQJMSRA_AS4001: setDestination:Invalid destination name=example/destination

When I create one with a JNDI-name not including a forward-slash everything runs fine.

Don't know if Connection Factories have the same problem.

When I run the exact same setup in Linux, including a JNDI-name with a forward-slash, it runs just fine.

Complete stacktrace:

SEVERE: MDB00017: [BankServiceActivator]: Exception in creating message-driven bean container: [java.lang.Exception]
SEVERE: java.lang.Exception
java.lang.Exception
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:229)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:199)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:115)
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:207)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:197)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:63)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:175)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:216)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)
at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.security.PrivilegedActionException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.getActivationSpec(ConnectorMessageBeanClient.java:253)
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:209)
... 35 more
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException
at com.sun.enterprise.connectors.util.SetMethodAction.handleException(SetMethodAction.java:140)
at com.sun.enterprise.connectors.util.SetMethodAction.run(SetMethodAction.java:126)
... 38 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.connectors.util.SetMethodAction.run(SetMethodAction.java:99)
... 38 more
Caused by: java.lang.IllegalArgumentException: MQJMSRA_AS4001: setDestination:Invalid destination name=jms/QueueDestination
at com.sun.messaging.jms.ra.ActivationSpec.setDestination(ActivationSpec.java:387)
... 43 more

SEVERE: Exception while invoking class org.glassfish.ejb.startup.EjbDeployer load method
java.lang.RuntimeException: EJB Container initialization error
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:219)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:197)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:63)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:175)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:216)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)
at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.Exception
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:229)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:199)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:115)
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:207)
... 32 more
Caused by: java.security.PrivilegedActionException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.getActivationSpec(ConnectorMessageBeanClient.java:253)
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:209)
... 35 more
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException
at com.sun.enterprise.connectors.util.SetMethodAction.handleException(SetMethodAction.java:140)
at com.sun.enterprise.connectors.util.SetMethodAction.run(SetMethodAction.java:126)
... 38 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.connectors.util.SetMethodAction.run(SetMethodAction.java:99)
... 38 more
Caused by: java.lang.IllegalArgumentException: MQJMSRA_AS4001: setDestination:Invalid destination name=jms/QueueDestination
at com.sun.messaging.jms.ra.ActivationSpec.setDestination(ActivationSpec.java:387)
... 43 more

SEVERE: Exception while loading the app
java.lang.RuntimeException: EJB Container initialization error
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:219)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:197)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:63)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:175)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:216)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)
at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.Exception
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:229)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:199)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:115)
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:207)
... 32 more
Caused by: java.security.PrivilegedActionException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.getActivationSpec(ConnectorMessageBeanClient.java:253)
at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:209)
... 35 more
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException
at com.sun.enterprise.connectors.util.SetMethodAction.handleException(SetMethodAction.java:140)
at com.sun.enterprise.connectors.util.SetMethodAction.run(SetMethodAction.java:126)
... 38 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.connectors.util.SetMethodAction.run(SetMethodAction.java:99)
... 38 more
Caused by: java.lang.IllegalArgumentException: MQJMSRA_AS4001: setDestination:Invalid destination name=jms/QueueDestination
at com.sun.messaging.jms.ra.ActivationSpec.setDestination(ActivationSpec.java:387)
... 43 more



 Comments   
Comment by David Zhao [ 15/Feb/12 ]

forward slash is not a valid character for destName. But create-jmsdest command should be enhanced to return error message for this.

Comment by pbenedict [ 29/May/12 ]

I just hit this error myself!

I see two error reporting enhancements here:
1) Reading of @MessageDriven should be smarter to report that "/" is not valid
2) GS Admin console shouldn't allow me use "/" in the destination name

FYI, I was following the example here:
http://docs.oracle.com/cd/E19798-01/821-1841/bnbpk/index.html

Comment by David Zhao [ 06/Jun/12 ]

This defect duplicates to GLASSFISH-6604.
It is fine that the jndi name contains forward slash. but the it is invalid character in the imqDestinationName property.





[GLASSFISH-6617] Ignoring MDB's activation-spec for RedeliveryInterval and RedeliveryAttempts Created: 22/Oct/08  Updated: 20/Dec/16  Resolved: 25/Jul/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 9.1peur2
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: beniamin Assignee: David Zhao
Resolution: Fixed Votes: 3
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified
Environment:

Operating System: Windows XP
Platform: PC
URL: http://forums.java.net/jive/thread.jspa?threadID=50212&tstart=50


Sub-Tasks:
Key
Summary
Type
Status
Assignee
GLASSFISH-18940 Add new property "imq.transaction.mes... Sub-task Open Mike Fitch  
Issuezilla Id: 6,617

 Description   

I set these parameters using activation-config within sun specific descriptor.
It's ignored in runtime.

Futhermore, documentation contains information that these parameters affect on
container's behaviour in case of throw RuntimeException from onMessage method.
What about MessageDrivenContext.setRollbackOnly() method's invoke ? Does
container should treat it in another way?

I tried both ways, and found:
1) in case of using setRollbackOnly() - message is redelivered with no limit
2) in case of throwing RuntimeException - message is redelivered once, and dump
to the default dead-message-queue

regards
Beniamin



 Comments   
Comment by beniamin [ 28/Oct/08 ]

Nobody is interested in it.

Comment by sanandal [ 11/Jan/09 ]

"Reclassifying as P4 because this issue is not deemed "must fix" for this v2.1
release whose primary release driver is SailFin.
This issue will be scrubbed after this release and will be given the right
priority for the next release."

Comment by stenlee [ 01/Mar/09 ]
      • Issue 6617 has been confirmed by votes. ***
Comment by stenlee [ 01/Mar/09 ]

i think this is "must have" for messaging. Loosing option to change this
properties can be stopper for lot of usecases

Comment by beniamin [ 01/Mar/09 ]

Not only "can be". It is actually the stopper for some cases.

Comment by David Zhao [ 15/Feb/12 ]

@Nigel http://www.java.net/forum/topic/glassfish/glassfish/jms-redelivery-interval-gf-21?force=231
===============================================

If a MDB throws an exception then Glassfish (actually the resource adapter) will sleep for
endpointExceptionRedeliveryInterval and then invoke the MDB again with the same message. This will repeat for
EndpointExceptionRedeliveryAttempts times.

If, after calling onMessage() endpointExceptionRedeliveryAttempts times the MDB still throws an exception, then what
happens next is determined by the sendUndeliverableMsgsToDMQ property.

If sendUndeliverableMsgsToDMQ is set to true the message is then sent to the dead message queue. If
sendUndeliverableMsgsToDMQ is not set the message is returned to the broker and it will be redelivered, causing the
whole process to repeat.

The above properties are all activation spec properties. The first post in this thread demonstrates how to configure them.

> "/(Remember you've got a pool of MDBs, so if the MDB starts throwing
> exceptions you'll see a sudden burst of, say, 32 exceptions, then a pause of
> 18 seconds, when another burst of 32 exceptions, and so on.)/"
>
> In my case, I have a MDB that may receive many messages in a minute. These messages (the TO inside the message) may
> already have been received previously. In this case, the MDB invokes a stateless session bean that will throw a
> BOAlreadyExists exception. Inside MDB, I get the BOAlreadyExists exception and just log this event.
> I have some problems because the pool seems "stop working" after a predefined number of these exceptions.

If the MDB's onMessage() isn't throwing an exception, but logs a message and returns, then none of the above applies.
Something else is going on.

Comment by Tom Mueller [ 06/Mar/12 ]

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.

Comment by pedrofalcaocosta [ 08/Mar/12 ]

I have this issue too. In my case, besides the annotations properly configured:

activationConfig =

{ @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"), @ActivationConfigProperty(propertyName = "endpointExceptionRedeliveryAttempts", propertyValue = "20"), @ActivationConfigProperty(propertyName = "sendUndeliverableMsgsToDMQ", propertyValue = "true")}

These are being totally ignored.
The message keeps being redelivered forever, because the transaction was rolledbacked by JPA.

I had to annotate the method calling the persistence with @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW), but now I'm missing the retry feature, because the message is Acknowledged.

I think this is an important issue for a JMS implementation.

Comment by David Zhao [ 12/Mar/12 ]

pedrofalcaocosta:

It has been fixed in MQ 5.0, which will be bundled to future GlassFish release. Please refer to MQ-134 for more details.

Comment by David Zhao [ 12/Mar/12 ]

JMSRA should take care of setting imq.transaction.message.maxConsecutiveRollbacks property to MQ.

Comment by David Zhao [ 25/Jul/12 ]

This defect has been fixed by a new MQ 5.0 property "imq.transaction.message.maxConsecutiveRollbacks".

For the EMBEDDED/LOCAL jms service of glassfish, the property can be set via admin gui:

Configurations -> server-config -> Java Message Service -> Additional Properties

For the REMOTE jms service of glassfish, the property should be set in the remote broker's config properties file.

Please refer to the MQ-139 for the value of the property:

If <= 0, this feature is disabled;
If > 0, for running in GlassFish with JMSRA, when consecutive rollback a message to a consumer exceeds this number, the broker will automatically put this message to DMQ (if there are more than 1 message in the transaction, only the last message in the transaction is put to DMQ) and and rollback the rest of the transaction then return an error status to rollback

Comment by gfuser9999 [ 25/Jul/12 ]

The fix by MQ-139 is not really useful and does not address the issue.
In fact if you see for the "Exception" trigger retry
you have endpointExceptionRedeliveryInterval,
endpointExceptionRedeliveryAttempts
The retry in the JMSRA to have a delay for redelivery help
in transient failures (in time for say some recovery)

1) In the MQ broker fix case, i believe if one rollback, the message
will come back almost immediately and then within 1 min
it is possible hundred or thousands retry count is made
and it goes to DMQ (or drop)

2) Furthermore i do not think a global MQ broker switch caters
to different client and destination that requires their
own retry mechanism.

I do hope you can reconsider this fix as IT is surely INCOMPLETE
and does not really work that well. (So i do not think
you can say it 100% fix... It is not .....

Comment by David Zhao [ 18/Sep/12 ]

gfuser9999,

Thanks your feedback!

This defect is to fix the infinite msg resending caused by setRollbackOnly(). So I think it is OK to close it by introducing the global property.

Your suggestion is reasonable to be a potential enhancement which needs to be addressed at jms spec level. Please discuss it here if you think it is a general requirement which may help jms users on that.

Comment by amyk [ 10/Oct/12 ]

MQ-220 has been filed to track JMS specification (and any other relevant Java EE specification) and corresponding JMSRA/MQ/GlassFish changes in order to support the improvements asked by gfuser9999





[GLASSFISH-19025] Message broker stops responding when conflicting ports are specified Created: 21/Aug/12  Updated: 20/Dec/16  Resolved: 24/Aug/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: tak09 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows



 Description   

Message broker stops responding when conflicting ports are specified

Message broker stops responding when conflicting ports are specified.
To reproduce the problem
1.Edit glassfish3\mq\lib\props\broker\default.properties
imq.admin.tcp.port=1000
imq.jms.tcp.port=1000
2.Start imqbrokerd
imqbrokerd
3.Connect to imqbrokerd from imqcmd
imqcmd shutdown bkr
4.Unable to shutdown as connection to the imqbrokerd is not established.

The problem can be reproduced by changing the port number after the imqbrokerd has been started.
1.Start imqbrokerd.
2.imqcmd update svc -n admin -o port=1000
3.imqcmd update svc -n jms -o port=1000
4.imqcmd shutdown bkr
Unable to shutdown.



 Comments   
Comment by David Zhao [ 21/Aug/12 ]

Hi tak09,

The imq commands belongs to the bundled MQ of glassfish, would you please file the relative defects against MQ instead of glassfish? Filing defects against proper project may lead to quicker fix.

Thanks,
David

Comment by tak09 [ 21/Aug/12 ]

Hi David,
Sorry about that. I have already filed 19026, 19025 and 19020 under glassfish/jms. Could you please advice if I need to re-send these same bug reports under MQ? Regards, tak09

Comment by David Zhao [ 23/Aug/12 ]

Hi tak09,

Please re-file this defect against MQ. I will close this one after that. Sorry for the inconvenience.

-
Thanks,
David Zhao

Comment by tak09 [ 24/Aug/12 ]

I re-filed the same issue against MQ. Please refer to MQ-194.





[GLASSFISH-19352] An empty string ("") can be set for clientID Created: 16/Nov/12  Updated: 20/Dec/16  Resolved: 01/Jul/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Trivial
Reporter: tak09 Assignee: David Zhao
Resolution: Invalid Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Glassfish v4.0 b45
Windows 7


Attachments: PNG File clientid.png     Zip Archive setClientID.zip    

 Description   

An empty string ("") can be used when setting a clientID using GUI or setClientID() method.

1. Set ("") in the Resources > JMS Resources > Connection Factories > Connection Factory Name Additional Properties. If you click Save, it is saved successfully. (Bug) Please see the attachment file.

2. When "" is used for setting clientID, it is compiled and executed without an error. (Bug) See the attachment file for the use of setClientID("\"\"").

3. When asadmin is used for setting an empty string ("") in clientID, this operation fails. (Working as expected. Not a bug)

C:\GFFeedback\3043ClientID\TP\setClientID\run>C:\glassfish\glassfish-4.0-b45\glassfish3\glassfish\bi
n\asadmin create-jms-resource --restype javax.jms.ConnectionFactory --property ClientID=^"^\^"^\^"^"
 jms/ConnectionFactory001
remote failure: Unable to create connection pool.
Invalid property syntax, missing property value: ClientID=
Command create-jms-resource failed.

^ is an escape sequence character in MS-DOS.



 Comments   
Comment by David Zhao [ 01/Jul/13 ]

In the admin gui, the value is escaped by default. So if you input "" for ClientID property, then the value stored in domain.xml will be "" with no change. If you want to test empty string for the property, you should leave the value field blank and then click Save button, thus the property will not be saved, which is expected.





[GLASSFISH-19039] asadmin delete-jms-resource deletes a non-jms resource Created: 28/Aug/12  Updated: 20/Dec/16  Resolved: 17/Jul/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.1

Type: Bug Priority: Minor
Reporter: tak09 Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows



 Description   

asadmin delete-jms-resource can delete a resource which is not displayed with asadmin list-jms-resource.

To reproduce the problem:
1. Create a connector connection pool with raname jaxr-ra. (Do not use jmsra.)

C:\>asadmin create-connector-connection-pool --raname=jaxr-ra --connectiondefinition=com.sun.connector.jaxr.JaxrConnectionFactory pooltest
Connector connection pool pooltest created.
Command create-connector-connection-pool executed successfully.

2. The new resource is not listed for the JMS resources.

C:\>asadmin list-jms-resources
Nothing to list
Command list-jms-resources executed successfully.

3. The new resource is deleted with delete-jms-resource command even if it is not a JMS resource.

C:\>asadmin delete-jms-resource jms/test
Connector resource jms/test deleted.
Command delete-jms-resource executed successfully.



 Comments   
Comment by tak09 [ 28/Aug/12 ]

Sorry, I missed one step. The below step is necessary after 1.

C:\>asadmin create-connector-resource --poolname=pooltest jms/test
Connector resource jms/test created.
Command create-connector-resource executed successfully.

Comment by David Zhao [ 17/Jul/13 ]

Fixed it in asadmin delete-jms-resource command by not allowing to delete non-jmsra connection factory.





[GLASSFISH-19026] If an instance name with a space is specified with imqbrokerd, that instance cannot be shutdown Created: 21/Aug/12  Updated: 20/Dec/16  Resolved: 24/Aug/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Trivial
Reporter: tak09 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows



 Description   

If an instance name with a space is specified with imqbrokerd, that instance can be started. However, shutting down that instance fails.

1. Start imqbrokerd with an instance name containing a space.
imqbrokerd -name "aaa bbb"

2. Confirm that the imqbrokerd has been started successfully.
[#|2012-08-21T16:33:39.219+1000|FORCE|5.0|imq.log.Logger|_ThreadID=10;_ThreadName=main;|[B1039]: Bro
ker "aaa bbb@hostname:7676" ready.

#]

3. Shutdown the broker fails.
imqcmd shutdown bkr

Shutting down the broker specified by:

-------------------------
Host         Primary Port
-------------------------
localhost    7676

21/08/2012 4:35:04 PM com.sun.messaging.jmq.jmsclient.ExceptionHandler logCaughtException
WARNING: [I500]: Caught JVM Exception: java.lang.StringIndexOutOfBoundsException: String index out o
f range: -1
21/08/2012 4:35:04 PM com.sun.messaging.jmq.jmsclient.ExceptionHandler logCaughtException
WARNING: [I500]: Caught JVM Exception: java.lang.StringIndexOutOfBoundsException: String index out o
f range: -1
Error while connecting to the broker on host 'localhost' and port '7676'.
com.sun.messaging.jms.JMSException: [C4038]: java.lang.StringIndexOutOfBoundsException: String index
 out of range: -1
Please verify that there is a broker running on the specified host and port or
use the '-b' option to specify the correct broker host and port.

Shutting down the broker failed.


 Comments   
Comment by David Zhao [ 23/Aug/12 ]

Hi tak09,

Please re-file this defect against MQ. I will close this one after that. Sorry for the inconvenience.

-
Thanks,
David Zhao

Comment by tak09 [ 24/Aug/12 ]

I re-filed the same issue against MQ. Please refer to MQ-195





[GLASSFISH-11319] JMS Bridge Manager doesn't work in a Glassfish V3 embedded broker Created: 17/Dec/09  Updated: 20/Dec/16  Resolved: 11/Jul/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: V3
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: Nigel Deakin Assignee: Simon Meng
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Zip Archive mqtomq.zip    
Issuezilla Id: 11,319
Tags: 3_1-exclude, bj-reviewed-t1

 Description   

An attempt to start the JMS bridge manager service in a Glassfish V3 embedded
broker, it fails with:

ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory

This is despite fscontext.jar (which contains this class) being bundled with the
JMSRA RA. (Details: fscontext.jar is located in
glassfish/lib/install/applications/jmsra and is referenced in the Class-Path
attribute of the manifest of imqjmsbridge.jar, which is also in
glassfish/lib/install/applications/jmsra and is loaded correctly).

This problem seems to be specific to JNDI provider classes, since if we package
the classes inside imqbroker.jar we still get still get the same error. Perhaps
com.sun.enterprise.naming.GlassFishNamingBuilder is using the wrong class loader.

The workaround is to move fscontext.jar and all the other jars in imqjmsra.rar
to glassfish.lib. (The rar's manifest.mf must be left in its original place).

Here's the full stack trace:

[16/Dec/2009:05:01:31 PST] WARNING [B2217]: Failed to start bridge service manager:
javax.naming.NoInitialContextException: Cannot instantiate class:
com.sun.jndi.fscontext.RefFSContextFactory [Root exception is
java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory]
at
com.sun.enterprise.naming.GlassFishNamingBuilder.createInitialContextFactory(GlassFishNamingBuilder.java:100)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:664)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at
com.sun.messaging.bridge.service.jms.JMSBridge.createConnectionFactory(JMSBridge.java:505)
at com.sun.messaging.bridge.service.jms.JMSBridge.createLink(JMSBridge.java:334)
at com.sun.messaging.bridge.service.jms.JMSBridge.init(JMSBridge.java:218)
at com.sun.messaging.bridge.service.jms.BridgeImpl.start(BridgeImpl.java:119)
at
com.sun.messaging.bridge.BridgeServiceManagerImpl.startBridge(BridgeServiceManagerImpl.java:441)
at
com.sun.messaging.bridge.BridgeServiceManagerImpl.start(BridgeServiceManagerImpl.java:249)
at com.sun.messaging.jmq.jmsserver.Broker._start(Broker.java:1391)
at com.sun.messaging.jmq.jmsserver.Broker.start(Broker.java:410)
at com.sun.messaging.jmq.jmsserver.BrokerProcess.start(BrokerProcess.java:219)
at
com.sun.messaging.jmq.jmsserver.DirectBrokerProcess.start(DirectBrokerProcess.java:87)
at
com.sun.messaging.jmq.jmsclient.runtime.impl.BrokerInstanceImpl.start(BrokerInstanceImpl.java:144)
at
com.sun.messaging.jms.ra.EmbeddedBrokerRunner.start(EmbeddedBrokerRunner.java:284)
at
com.sun.messaging.jms.ra.LifecycleManagedBroker.start(LifecycleManagedBroker.java:337)
at com.sun.messaging.jms.ra.ResourceAdapter.start(ResourceAdapter.java:314)
at
com.sun.enterprise.connectors.jms.system.ActiveJmsResourceAdapter$1.run(ActiveJmsResourceAdapter.java:357)
at java.security.AccessController.doPrivileged(Native Method)
at
com.sun.enterprise.connectors.jms.system.ActiveJmsResourceAdapter.startResourceAdapter(ActiveJmsResourceAdapter.java:350)
at
com.sun.enterprise.connectors.ActiveOutboundResourceAdapter.init(ActiveOutboundResourceAdapter.java:128)
at
com.sun.enterprise.connectors.inbound.ActiveInboundResourceAdapterImpl.init(ActiveInboundResourceAdapterImpl.java:86)
at
com.sun.enterprise.connectors.ActiveRAFactory.instantiateActiveResourceAdapter(ActiveRAFactory.java:130)
at
com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:101)
at
com.sun.enterprise.connectors.service.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(ResourceAdapterAdminServiceImpl.java:216)
at
com.sun.enterprise.connectors.service.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(ResourceAdapterAdminServiceImpl.java:338)
at
com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(ConnectorRuntime.java:330)
at
com.sun.enterprise.connectors.service.ConnectorService.loadDeferredResourceAdapter(ConnectorService.java:164)
at
com.sun.enterprise.connectors.service.ConnectorService.loadResourcesAndItsRar(ConnectorService.java:133)
at
com.sun.enterprise.connectors.service.ConnectorService.checkAndLoadPool(ConnectorService.java:307)
at
com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.getManagedConnectionFactory(ConnectorConnectionPoolAdminServiceImpl.java:541)
at
com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.getUnpooledConnection(ConnectorConnectionPoolAdminServiceImpl.java:627)
at
com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.testConnectionPool(ConnectorConnectionPoolAdminServiceImpl.java:442)
at
com.sun.enterprise.connectors.ConnectorRuntime.pingConnectionPool(ConnectorRuntime.java:898)
at org.glassfish.jms.admin.cli.JMSPing.pingConnectionPool(JMSPing.java:184)
at org.glassfish.jms.admin.cli.JMSPing.execute(JMSPing.java:116)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)
at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
at
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException:
com.sun.jndi.fscontext.RefFSContextFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at
com.sun.enterprise.naming.GlassFishNamingBuilder.loadClass(GlassFishNamingBuilder.java:121)
at
com.sun.enterprise.naming.GlassFishNamingBuilder.createInitialContextFactory(GlassFishNamingBuilder.java:96)
... 62 more



 Comments   
Comment by Nigel Deakin [ 17/Dec/09 ]

Created an attachment (id=4112)
JMS Bridge example that can be used to reproduce the issue

Comment by Nigel Deakin [ 17/Dec/09 ]

To reproduce the issue, configure the embedded broker to start the bridge
manager as described in the standard JMS Bridge example. This is attached for
convenience. Note that no Java code is required: simply configure the connection
factory and bridge as described and then start Glassfish.

Comment by Nigel Deakin [ 17/Dec/09 ]

IMPORTANT NOTE: You can't reproduce this on the Glassfish V3 final release,
since if you try to do that you will hit Glassfish GLASSFISH-11321 before you hit this
bug. So to reproduce this you need to use a build of MQ that works around GLASSFISH-11321.

Comment by Nigel Deakin [ 17/Dec/09 ]

I've tried the same scenario with Glassfish 2.1.1 and the JMS bridge manager
starts without error.

I see the log message:
JNDI lookup cn=CF7677 for connection factory CF7677
but no errors.

Comment by Satish Kumar [ 29/Jan/10 ]

Adding v3.0.1 as the target milestone.

Comment by kumara [ 04/Feb/10 ]

Approved for v3.0.1

Comment by Satish Kumar [ 20/May/10 ]

Changing the target release of this issue to GF 3.1 since this issue is a P3 and
not critical for the 3.0.1 release. Also, there is a work around if a user
wishes to use this functionality.

Comment by Dhiru Pandey [ 14/Jun/10 ]

...

Comment by Satish Kumar [ 06/Dec/10 ]

On investigating this issue further, the problem appears to be since the classloader being used here is not the ConnectorClassLoader. The jmsra classes are only available when the ConnectorClassLoader is used. On discussions with Jagadish, the suggested solution is to set the context classloader to the connectorclassloader before executing jms-ping.The exception in this strack trace suggests that the trigger for the exception mention in this bug report is a call to jms-ping but there may be several other areas that would need this change. Hence a larger investigation is required before resolving this issue.

Targeting this issue for 3.2 release since this is not a common use case and there is a work-around for this issue. The workaround for this issue continues to as documented above - move the jars from lib/install/applications/jmsra to lib directory.

suggested code changes for future reference..

@Inject ClassLoaderHierarchy clh;
to get connectorclassloader
clh.getConnectorClassLoader("jmsra");

set the context classloader to the connectorclassloader

reset the context classloader back to the original classloader once the call has returned.

Comment by Simon Meng [ 13/Jun/12 ]

This issue can be reproduce with glassfish 4.0_b40. When executing jms-ping, the ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory appeared in broker log. There are other messages in server log:

java.lang.ClassNotFoundException: com.sun.messaging.jmq.jmsserver.service.DestinationLogHandler
java.lang.ClassNotFoundException: com.sun.messaging.jmq.util.log.SysLogHandler
java.lang.ClassNotFoundException: com.sun.messaging.jmq.jmsserver.management.agent.JMXLogHandler

Comment by Simon Meng [ 20/Jun/12 ]

The three log handler classes DestinationLogHandler, SysLogHandler and JMXLogHandler are not related to this bug.

Comment by Simon Meng [ 20/Jun/12 ]

I tried to add the following code fragment in JMSPing.

@Inject ClassLoaderHierarchy clh;
to get connectorclassloader
clh.getConnectorClassLoader(null);

The JMS bridge works with this change. But it is not correct. User must execute jms-ping command to initialize the JMS bridge before send messages.
If user does not execute the jms-ping comand, user try to send messages directly, then java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory will appear.

Comment by Simon Meng [ 11/Jul/12 ]

Revision: 55071
Time: 2012-07-10 19:45:43 -0700 (Tue, 10 Jul 2012)
Author: simeng_oracle
Changed paths: /trunk/main/appserver/connectors/connectors-runtime/src/main/java/com/sun/enterprise/connectors/ActiveRAFactory.java
Message: Fix GLASSFISH-11319 - Set thread context classloader in connector container





[GLASSFISH-19040] When asadmin delete-jms-resource is executed, it is failed. However, the resource is deleted as a result. Created: 28/Aug/12  Updated: 20/Dec/16  Resolved: 06/Aug/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.1

Type: Bug Priority: Minor
Reporter: tak09 Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows


Issue Links:
Related
is related to GLASSFISH-20742 One pager update: Add parameter --cas... Open

 Description   

1. Create a connection factory for jms.

C:\>asadmin create-jms-resource --restype javax.jms.ConnectionFactory CF001
Connector resource CF001 created.
Command create-jms-resource executed successfully.

2. Create a connection resource using the connection factory created in 1.

C:\>asadmin create-connector-resource --poolname CF001 CF002
Connector resource CF002 created.
Command create-connector-resource executed successfully.

3. Delete the connection factory which was created in 1.

C:\>asadmin delete-jms-resource CF001
remote failure: Unable to Delete Connector Connection Pool
Some connector resources are referencing connection pool CF001. Use 'cascade' option to delete them
as well.
Command delete-jms-resource failed.

Bug 1. CF001 was deleted unexpectedly. See the above error.

C:\>asadmin list-jms-resources
CF002
Command list-jms-resources executed successfully.

Bug 2. There is no cascade option.

C:\>asadmin delete-jms-resource --cascade=true CF001
Invalid option: --cascade=true
Usage: asadmin [asadmin-utility-options] delete-jms-resource [--target <target>]
        [-?|--help[=<help(default:false)>]] jndi_name
Command delete-jms-resource failed.


 Comments   
Comment by David Zhao [ 06/Aug/13 ]

Fixed asadmin delete-jms-resource,

1) Check connector resources which share the same connector connection pool.
2) Add --cascade parameter.





[GLASSFISH-19044] JMS destination without physical destination name can be created Created: 31/Aug/12  Updated: 20/Dec/16

Status: Open
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: tak09 Assignee: Anissa Lam
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

JMS destination without physical destination name can be created. To reproduce the problem, follow the steps below.

Create a new JMS destination resource

1.Open Resources > JMS Resources > Destination Resources from the left side Navigation tree.
2.Click New.
3.Enter all the mandatory fields including "Physical Destination Name".
4.Click OK to save.

Then, remove the Name property.

1.Open the newly created JMS destination resource from the Navigation menu Resources > Connectors > Admin Object Resources.
2.Click Delete property Delete the Name property.
3.Then, click OK to save it.

Go back to the JMS destination resource.

1.Open the same JMS destination resource from Resources > JMS Resources > Destination Resources from the left side Navigation tree.
2.You will find the Physical Destination Name which is a mandatory field became empty.
(Bug)This field is not supposed to become empty.



 Comments   
Comment by David Zhao [ 01/Jul/13 ]

Anissa,

Could you please evaluate if there is any solution for the case?

/David

Comment by Anissa Lam [ 01/Jul/13 ]

In the console, I can give error and stop user from deleting the Name Property in the Admin Object Resource page.
However, this is not going to stop user using CLI or REST resource to remove that property.

So, the ideal is to stop the removal of this Name Property in the Admin Object config code, and returns an error if user wants to remove it, independent of the client.





Ignoring MDB's activation-spec for RedeliveryInterval and RedeliveryAttempts (GLASSFISH-6617)

[GLASSFISH-18940] Add new property "imq.transaction.message.maxConsecutiveRollbacks" to glassfish jms service Created: 25/Jul/12  Updated: 20/Dec/16

Status: Open
Project: glassfish
Component/s: jms
Affects Version/s: None
Fix Version/s: 4.0_dev

Type: Sub-task Priority: Major
Reporter: David Zhao Assignee: Mike Fitch
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Please update glassfish documentation for the enhancement of GLASSFISH-6617:

A new MQ 5.0 property "imq.transaction.message.maxConsecutiveRollbacks" was added.

For the EMBEDDED/LOCAL jms service of glassfish, the property can be set via admin gui:

Configurations -> server-config -> Java Message Service -> Additional Properties

For the REMOTE jms service of glassfish, the property should be set in the remote broker's config properties file.

Please refer to the MQ-134 and MQ-139 for the value of the property:

If <= 0, this feature is disabled;
If > 0, for running in GlassFish with JMSRA, when consecutive rollback a message to a consumer exceeds this number, the broker will automatically put this message to DMQ (if there are more than 1 message in the transaction, only the last message in the transaction is put to DMQ) and and rollback the rest of the transaction then return an error status to rollback






[GLASSFISH-19033] Invalid characters can be entered for Physical Destination Name Created: 23/Aug/12  Updated: 20/Dec/16  Resolved: 05/Jul/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.1

Type: Bug Priority: Major
Reporter: tak09 Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File PhysicalDestinationName.png    

 Description   

In the GlassFish GUI, invalid characters can be entered for Physical Destination Name.

According to the imqcmd manual (http://docs.oracle.com/cd/E26576_01/doc.312/e24943/command-line-reference.htm#aeonj) , some characters are not allowed for the Physical Destination Name.

"The destination name destName may contain only alphanumeric characters (no spaces) and must begin with an alphabetic character or the underscore (_) or dollar sign ($) character. It may not begin with the characters mq."

The imqcmd command blocks these characters as stated. However, these invalid characters are accepted in the Glassfish GUI.
For example, open Resources>JMS Resources>Destination Resources in the GUI, and invalid characters such as #PhysicalQueue, !123 or mq.abc are accepted. Please see the screenshot. When you click Save, it is created with the invalid name.

If you run a JMS client using this Physical Destination Name after the above is saved, it will fail with the following Exception.

23/08/2012 10:47:09 AM com.sun.enterprise.connectors.util.SetMethodAction handleException
WARNING: RAR7096: Exception null while trying to set the value #PhysicalQueue on property Name
com.sun.enterprise.container.common.spi.util.InjectionException: Exception attempting to inject Unre
solved Message-Destination-Ref Producer/queue@java.lang.String@null into class Producer: Lookup fail
ed for 'java:comp/env/Producer/queue' in SerialContext[myEnv=

Unknown macro: {java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs=com.sun.enterprise.naming, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl}

at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject(InjectionManag

When you try the same thing using the asadmin, it is a little different. Physical name 123 or !abc fails. However, mq.abc is accepted which is not supposed to be allowed.

When physical destination name is 123, asadmin create-jms-resource fails.

C:\>asadmin create-jms-resource --restype javax.jms.Queue --property Name=123 jms/TestQueue2
remote failure: Unable to create admin object. Reason: Destination Resource jms/TestQueue2 has an in
valid destination name 123
Command create-jms-resource failed.

When physical destination name is !abc, asadmin create-jms-resource fails.

C:\>asadmin create-jms-resource --restype javax.jms.Queue --property Name=!abc jms/TestQueue2
remote failure: Unable to create admin object. Reason: Destination Resource jms/TestQueue2 has an in
valid destination name !abc
Command create-jms-resource failed.

When physical destination name begins with mq., asadmin create-jms-resource works. However, this is not supposed to be.

C:\>asadmin create-jms-resource --restype javax.jms.Queue --property Name=mq.abc jms/TestQueue2
Administered object jms/TestQueue2 created.
Command create-jms-resource executed successfully.

I think Glassfish GUI and asadmin need fix for this problem. Thank you.



 Comments   
Comment by tak09 [ 06/Sep/12 ]

In addition to the above, Japanese characters must not be allowed for the physical destination name. However, this is currently not checked.

C:\>asadmin create-jms-resource --restype=javax.jms.Topic --property Name
=あ Test12345
Administered object Test12345 created.
Command create-jms-resource executed successfully.
C:\>asadmin get resources.admin-object-resource.Test12345.*
resources.admin-object-resource.Test12345.property.Name=?
resources.admin-object-resource.Test12345.enabled=true
resources.admin-object-resource.Test12345.jndi-name=Test12345
resources.admin-object-resource.Test12345.object-type=user
resources.admin-object-resource.Test12345.res-adapter=jmsra
resources.admin-object-resource.Test12345.res-type=javax.jms.Topic
Command get executed successfully.
Comment by Nigel Deakin [ 15/Feb/13 ]

In accordance with the project triage guidelines this is not needed for 4.0 and so has been deferred until 4.0.1. Setting "fix version" accordingly.

Comment by David Zhao [ 05/Jul/13 ]

Fixed by checking "mq." prefix and non-ascii charactors for physical destination name.

Comment by tak09 [ 11/Jul/13 ]

I checked the fix using glassfish-4.0.1-b02-07_08_2013.zip.
I confirmed the bug in asadmin has been fixed. Thank you very much.

However, I still see the bug in GUI.
For example,
1. Open Resources>JMS Resources>Destination Resources in the GUI.
2. Click "New" button.
3. Enter invalid characters such as mq.abc, #PhysicalQueue or !234 in Physical Destination Name.
4. Click Save.
5. Bug. Physical Destination Name is saved with invalid characters.

Has this been fixed already?

Comment by David Zhao [ 11/Jul/13 ]

As what I mentioned previously, create-jms-resource invokes create-admin-object and create-connector-resource internally for jms destination and connection factory. In domain.xml, there is no any JMS resources actually, but they are represented by connector admin object and connector connection factory indeed. That is why you can see the same JMS resource under both Connector Resources and JMS Resources tabs in admin gui. That behavior had been existing for a long time.

In the admin gui, when creating/editing any JMS resources, it calls create-admin-object and create-connector-resource directly instead of calling create-jms-resource. That is why you spotted that it was fixed in asadmin create-jms-resource, but it exists in admin gui.

We are planning to enhance create-jms-resource for admin gui to use in the future. But currently the difference between asadmin create-jms-resource and admin gui is expected. Let me know if you have further questions.





[GLASSFISH-19020] When invalid min and max threads are specified for imqbrokerd, it does not accept a message. Created: 20/Aug/12  Updated: 20/Dec/16  Resolved: 01/Jul/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: tak09 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows



 Description   

When invalid min and max threads are specified for imqbrokerd, it does not work.

To reproduce this:
1. Start imqbrokerd
imqbrokerd -Dimq.jms.min_threads=10 -Dimq.jms.max_threads=4

2. Send some messages.
Error running programjavax.jms.JMSException: [C4090]: Invalid port number. Broker is not available or may be paused: [localhost,-1]

at com.sun.messaging.jmq.jmsclient.ConnectionImpl.checkHostPort(ConnectionImpl.java:543)
at com.sun.messaging.jmq.jmsclient.protocol.tcp.TCPConnectionHandler.<init>(TCPConnectionHandler.java:136)
at com.sun.messaging.jmq.jmsclient.protocol.tcp.TCPStreamHandler.openConnection(TCPStreamHandler.java:136)

C:\glassfish\glassfish-4.0-b45\glassfish3\mq\bin>imqbrokerd -Dimq.jms.min_threads=10 -Dimq.jms.max_t
hreads=4
[#|2012-08-20T17:57:40.393+1000|WARNING|5.0|imq.log.Logger|_ThreadID=10;_ThreadName=main;|[S2004]: L
og output channel com.sun.messaging.jmq.util.log.SysLogHandler is disabled: no imqutil in java.libra
ry.path|#]


[#|2012-08-20T17:57:40.406+1000|FORCE|5.0|imq.log.Logger|_ThreadID=10;_ThreadName=main;|
================================================================================
Message Queue 5.0
Oracle
Version:  5.0  (Build 2-c)
Compile:  May 23 2012 1653

Copyright (c) 2012, Oracle and/or its affiliates.  All rights reserved.
================================================================================
Java Runtime: 1.6.0_32 Sun Microsystems Inc. C:\Program Files\Java\jdk1.6.0_32\jre
|#]


(Message Omitted)


[#|2012-08-20T17:57:41.203+1000|SEVERE|5.0|imq.log.Logger|_ThreadID=10;_ThreadName=main;|ERROR [B300
9]: Unable to start service jms: [B4115]: Unable to set thread values to min=10 max=4: [B4110]: Mini
mum threads 10 greater than maximum threads 4
|#]


[#|2012-08-20T17:57:41.211+1000|INFO|5.0|imq.log.Logger|_ThreadID=10;_ThreadName=main;|[B1004]: Star
ting the cluster service using tcp [ 0.0.0.0/0.0.0.0:56735 ] with min threads 1 and max threads of 1

|#]


[#|2012-08-20T17:57:41.212+1000|INFO|5.0|imq.log.Logger|_ThreadID=10;_ThreadName=main;|[B1228]: Clus
ter ping interval is 60 seconds
|#]


[#|2012-08-20T17:57:41.216+1000|FORCE|5.0|imq.log.Logger|_ThreadID=10;_ThreadName=main;|[B1039]: Bro
ker "imqbroker@hostname:7676" ready.
|#]


 Comments   
Comment by David Zhao [ 01/Jul/13 ]

This is MQ issue. Created MQ-314 for tracking.





[GLASSFISH-19037] Invalid characters can be entered for Name in New Admin Object Resource screen Created: 27/Aug/12  Updated: 20/Dec/16

Status: Open
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: tak09 Assignee: David Zhao
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows


Attachments: PNG File New Admin Object Resource.png    
Tags: 4_0_1-reviewed

 Description   

In the New Admin Object Resource screen, an invalid characters can be entered for name property.

To reproduce the issue:
1. From the GUI, open Resources > Connectors > Admin Object Resources.
2. Then, click New to open the 'New Admin Object Resource'.
3. Enter an invalid character in the Name property. For example !abc. Please see the screenshot.
4. When you click OK, it is created with the invalid property name.

According to the imqcmd manual, the valid characters for the physical destination name are as follows:

"The destination name destName may contain only alphanumeric characters (no spaces) and must begin with an alphabetic character or the underscore (_) or dollar sign ($) character. It may not begin with the characters mq."

http://docs.oracle.com/cd/E26576_01/doc.312/e24943/command-line-reference.htm#aeonj

Please see the related issue GLASSFISH-19033 as well.



 Comments   
Comment by David Zhao [ 09/Jul/13 ]

Forward it to connector team for further investigation about the create-admin-object command issue.

Comment by Jagadish [ 18/Apr/14 ]

I think JMS RA need to validate the value of the property being set.
eg: the method "setName" in the use-case stated must do validation and throw exception in case the value is not valid.
(You can do validation in the setName or use bean validation). Transferring to JMS team for the fix.





[GLASSFISH-19034] The default values for pool setting are different in GUI and asadmin Created: 23/Aug/12  Updated: 20/Dec/16  Resolved: 24/Aug/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Trivial
Reporter: tak09 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

To check the default value set by GUI
1.Select Resources > JMS Resources > Connection Factories from the left side navigation tree.
2.Click New button in the right side of screen.
In the GUI, the default settings are as follows:
Initial and Minimum Pool Size: 8
Maximum Pool Size: 32

To check the default value set by asadmin
1.Create a new connection factory as follows.
asadmin create-jms-resource -restype javax.jms.ConnectionFactory jms/CF
2.Open the GUI and check the jms/CF to find out the default value set by asadmin.
asadmin sets the default settings are as follows:
Initial and Minimum Pool Size: 1
Maximum Pool Size: 250



 Comments   
Comment by David Zhao [ 24/Aug/12 ]

This is duplicate to GLASSFISH-18814.





[GLASSFISH-19442]  @JMSConnectionFactoryDefinition ignores clientId attribute Created: 14/Dec/12  Updated: 20/Dec/16  Resolved: 16/Jan/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: Nigel Deakin Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Tags: jms-2-implementation

 Description   

If I define a JMS connection factory using the following annotation:

@JMSConnectionFactoryDefinition(
    name="java:global/jms/demoConnectionFactory",
    className= "javax.jms.ConnectionFactory",
    description="ConnectionFactory to use in demonstration",
    clientId="myClientID",
    resourceAdapterName="jmsra",
    user="guest",
    password="guest"
)  

then inject it into my session bean using:

    @Resource(lookup = "java:global/jms/demoConnectionFactory")
    ConnectionFactory connectionFactory;

use it to create a connection

Connection connection = connectionFactory.createConnection();

and then report the clientid

String clientId = connection.getClientID();
System.out.println("ClientID = "+clientId);

I get a value of null printed,

However if I change the annotation to

@JMSConnectionFactoryDefinition(
    name="java:global/jms/demoConnectionFactory",
    className= "javax.jms.ConnectionFactory",
    description="ConnectionFactory to use in demonstration",
    properties="clientId=myClientID",
    resourceAdapterName="jmsra",
    user="guest",
    password="guest"
)     

then the correct clientId is displayed.

Both ways to configure clientId should work.



 Comments   
Comment by Simon Meng [ 04/Jan/13 ]
@JMSConnectionFactoryDefinition(
    name="java:global/jms/demoConnectionFactory",
    className= "javax.jms.ConnectionFactory",
    description="ConnectionFactory to use in demonstration",
    clientId="myClientIDAttribute",
    properties="clientId=myClientIDProperty",
    resourceAdapterName="jmsra",
    user="guest",
    password="guest"
)    

If clientId is defined in both annotation attribute and property list, which one takes effect?

Comment by Nigel Deakin [ 04/Jan/13 ]

I would suggest processing the "properties" attribute after the other attributes.

Comment by Simon Meng [ 05/Jan/13 ]

Fixed at revision 57972.

Comment by saradak [ 11/Jan/13 ]

Reopening the bug as test is still failing with latest glassfish build(b-71)after the fix.

CTS test(Client_checkClientIDOnDurableConnFactoryTest) failed at getting client id that is defined in the annotation for the
connection factory. This fixed the descriptor version but not the annotation version.

-Sarada

Comment by Simon Meng [ 11/Jan/13 ]

getClientID works fine with the reporter provide sample.
How to get the CTS code and run it? I need check the failed case.

Comment by Simon Meng [ 16/Jan/13 ]

@JMSConnectionFactoryDefinition works fine. The root cause is in MQ, relative bug is MQ-270.





[GLASSFISH-16060] usability : config-jms-cluster command Created: 21/Feb/11  Updated: 20/Dec/16  Resolved: 02/Aug/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 3.1_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: mathim Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified
Environment:

glassfish jms ra


Sub-Tasks:
Key
Summary
Type
Status
Assignee
GLASSFISH-18931 configure-jms-cluster man page should... Sub-task Resolved Gail Risdal  
Tags: 3_1-exclude, 3_1-next, 3_1_1-scrubbed, 3_1_2-exclude, bj-reviewed

 Description   

1) enhance the configure-jms-cluster command to automatically set the jms mode for the cluster instances to LOCAL if the cluster type specified is enhanced. Today the user has to manually set this

2) enhance configure-jms-cluster command to simplify derby setup (possibly other databases). Today we have to use the following command which is kind of a workaround to use the command with enhanced clusters and with derby

asadmin configure-jms-cluster --clustertype=enhanced --dbvendor=derby --dburl="jdbc:derby://derby-host:1527/mqdb" --property imq.persist.jdbc.derby.driver=org.apache.derby.jdbc.ClientDriver:imq.persist.jdbc.derby.createdburl=jdbc\\:derby\\://derby-host\\:1527/mqdb:imq.persist.jdbc.derby.closedburl=jdbc\\:derby\\://derby-host
:1527/mqdb cluster1

The command should automatically setup correct imq.persist.jdbc.derby.driver, imq.persist.jdbc.derby.createdburl and imq.persist.jdbc.derby.closedburl without the user having to specify them explicitely.

3) the output of "asadmin help configure-jms-cluster" command or the syntax of the command printed out has the following line

[--property property-list]
[--property <property>] [?|-help[=<help(default:false)>]] clustername

The format for -property to be like "-property (name=value)[:name-value]*"



 Comments   
Comment by mathim [ 22/Feb/11 ]

configure-jms-cluster command exits with error if "create=true" is specified to the imq.persist.jdbc.derby.createdburl

With out this flag the MQ broker does not create the database in derby and exits with the error that specified database is not found.

To work around this,
create a MQ broker instance with name "derbybroker" and copy the following values to the instance's config.properties file
imq.brokerid=your_broker_id
imq.persist.jdbc.dbVendor=derby
imq.persist.jdbc.derby.createdburl=jdbc:derby://derby-host:1527/mqdb;create=true
imq.persist.store=jdbc
imq.persist.jdbc.derby.driver=org.apache.derby.jdbc.ClientDriver
imq.persist.jdbc.derby.opendburl=jdbc:derby://localhost:1527/mqdb
imq.persist.jdbc.derby.closedburl=jdbc:derby://localhost:1527/mqdb;shutdown=true

Now do "imqdbmgr recreate tbl -b derbybroker". This will create the database in derby to be used by the MQ Broker.

Comment by Satish Kumar [ 24/May/11 ]

This is a set of suggested enhancements to the configure-jms-cluster command that cannot be accommodated in the 3.1.1 cycle. Hence, marking this issue as 3_1-next.

Comment by Simon Meng [ 02/Aug/12 ]

Revision: 55286
Time: 2012-08-02 06:19:07 -0700 (Thu, 02 Aug 2012)
Author: simeng_oracle
Changed paths:
/trunk/main/appserver/jms/admin/src/main/java/org/glassfish/jms/admin/cli/LocalStrings.properties
/trunk/main/appserver/jms/admin/src/main/java/org/glassfish/jms/admin/cli/ConfigureJMSCluster.java
Message: Fix GLASSFISH-16060 - enhance the configure-jms-cluster command usability

The original requirement include 3 items:
Item 1 is solved by revision 55286. Note, configure-jms-cluster command can set the jms mode for enhanced cluster instances from EMBEDDED to LOCAL automatically. For the REMOTE mode, user still need change JMS mode manually.
We don't plan to support Item 2.
Item 3 is a document issue. A subtask is created. See GLASSFISH-18931





[GLASSFISH-18900] Implement support for Java EE Connection Factory and Destination Resource Definition Created: 13/Jul/12  Updated: 20/Dec/16  Resolved: 12/Sep/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0
Fix Version/s: 4.0_dev

Type: New Feature Priority: Major
Reporter: Nigel Deakin Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Tags: ee7platspec, jms-2-implementation

 Description   

This issue covers the implementation of the following sections of the Java EE 7 specification: EE.5.17.4 "JMS Connection Factory Resource Definition" and EE.5.17.5 "JMS Destination Definition".

For a definitive description of this requirement, see the Java EE 7 specification.



 Comments   
Comment by Nigel Deakin [ 23/Jul/12 ]

The annotation itself, and the standard properties that will be defined, will be defined as part of JMS 2.0. The JMS specification issues are JMS_SPEC-96 and JMS_SPEC-97.

Comment by Simon Meng [ 12/Sep/12 ]

Committed revision 55843.





[GLASSFISH-6712] IMQ RollingFileOutputStream lacks delete permission on log dir Created: 05/Nov/08  Updated: 20/Dec/16  Resolved: 02/Nov/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 9.1peur2
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: sauvage Assignee: jigang
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 6,712

 Description   

Hi,

I encounter an issue while using a JMS ConnectionFactory from a web service.
Here is the stack trace:

[#|2008-11-05T14:18:25.356+0100|WARNING|sun-appserver9.1|javax.enterprise.system.stream.err|_ThreadID=25;_ThreadName=Timer-27;_RequestID=4c18bb66-ae84-4bae-851e-c28b8764b042;|
java.security.AccessControlException: access denied (java.io.FilePermission
/opt/SUNWappserver/domains/domain1/imq/instances/imqbroker/log/log_9.txt delete)
at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkDelete(SecurityManager.java:990)
at java.io.File.delete(File.java:902)
at
com.sun.messaging.jmq.io.RollingFileOutputStream.rolloverFile(RollingFileOutputStream.java:332)
at
com.sun.messaging.jmq.io.RollingFileOutputStream.write(RollingFileOutputStream.java:293)
at
com.sun.messaging.jmq.io.RollingFileOutputStream.write(RollingFileOutputStream.java:279)
at
com.sun.messaging.jmq.util.log.FileLogHandler.publish(FileLogHandler.java:248)
at com.sun.messaging.jmq.util.log.Logger.publish(Logger.java:543)
at com.sun.messaging.jmq.util.log.Logger.log(Logger.java:792)
at
com.sun.messaging.jmq.jmsserver.service.imq.IMQDirectConnection.logConnectionInfo(IMQDirectConnection.java:447)
at
com.sun.messaging.jmq.jmsserver.service.imq.IMQDirectConnection.logConnectionInfo(IMQDirectConnection.java:429)
at
com.sun.messaging.jmq.jmsserver.service.imq.IMQDirectConnection.setConnectionState(IMQDirectConnection.java:421)
at
com.sun.messaging.jmq.jmsserver.service.imq.IMQDirectConnection.authenticate(IMQDirectConnection.java:127)
at
com.sun.messaging.jmq.jmsserver.service.imq.IMQDirectService.createDirectConnection(IMQDirectService.java:325)
at
com.sun.messaging.jmq.jmsserver.service.imq.IMQDirectService.createConnection(IMQDirectService.java:419)
at
com.sun.messaging.jms.ra.DirectConnectionFactory._createConnectionId(DirectConnectionFactory.java:424)
at
com.sun.messaging.jms.ra.DirectConnectionFactory._createConnection(DirectConnectionFactory.java:547)
at
com.sun.messaging.jms.ra.ManagedConnection.<init>(ManagedConnection.java:190)
at
com.sun.messaging.jms.ra.ManagedConnectionFactory.createManagedConnection(ManagedConnectionFactory.java:213)
at
com.sun.enterprise.resource.ConnectorAllocator.createResource(ConnectorAllocator.java:136)
at
com.sun.enterprise.resource.AbstractResourcePool.createSingleResource(AbstractResourcePool.java:891)
at
com.sun.enterprise.resource.AbstractResourcePool.createResourceAndAddToPool(AbstractResourcePool.java:1752)
at
com.sun.enterprise.resource.AbstractResourcePool.resizePool(AbstractResourcePool.java:1399)
at
com.sun.enterprise.resource.AbstractResourcePool$Resizer.run(AbstractResourcePool.java:1532)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)

#]

I guess RollingFileOutputStream should use AccessController.doPrivileged() to
manipulate log files.

Best regards,

Laurent.



 Comments   
Comment by sanandal [ 11/Jan/09 ]

"Reclassifying as P4 because this issue is not deemed "must fix" for this v2.1
release whose primary release driver is SailFin.
This issue will be scrubbed after this release and will be given the right
priority for the next release."

Comment by Tom Mueller [ 06/Mar/12 ]

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.

Comment by jigang [ 02/Nov/12 ]

This issue can not be reproduced,I start a single server of GF and deploy an application that sends messages to the Queue using 100 threads.
Make sure that enabled security manager and configured the size and the number of server.log files.

Steps to reproduce

1.Start a single sever of GF.
asadmin start-domain domain1
2.Create the necessary resources for the application,a connection pool and a queue.
asadmin create-jms-resource --target server --restype javax.jms.ConnectionFactory jmsra/xaqcf
asadmin create-admin-object --raname jmsra --target server --restype javax.jms.Queue jmsra/queue
3.Configure the size and the number of server.log file.
asadmin set-log-attributes --target=server com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles=4
asadmin set-log-attributes --target=server com.sun.enterprise.server.logging.GFFileHandler.rotationLimitInBytes=1000
4.Enabled security manager
asadmin create-jvm-options -Djava.security.manager
5.Deploy application
asadmin deploy --name application_name application_path
6.Restart server
asadmin restart-domain domain1
7.Send messages to Queue using multiple threads and check the server.log
In order to check log, you can bypass set-log-levels subcommand to set the log level for one or more loggers.

Whether creates new resource or removes invalid resource handles in the pool while resizing the pool, the maxHistory of the server.log is always 4 and there is no AccessControlException.





[GLASSFISH-18899] Implement support for Java EE platform default connection factory Created: 13/Jul/12  Updated: 20/Dec/16  Resolved: 19/Oct/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0
Fix Version/s: 4.0_dev

Type: New Feature Priority: Major
Reporter: Nigel Deakin Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency
blocks MQ-177 Implement injection of JMSContext obj... Closed
Tags: ee7platspec, jms-2-implementation

 Description   

This issue covers the implementation of Java EE 7 section EE.5.19 "Default JMS Connection Factory"

For a definitive description of this requirement, see the Java EE 7 specification. In the Java EE 7 Early Draft this was:

The Java EE Platform requires that a Java EE Product Provider provide a JMS provider in the operational environment (see Section EE.2.7.8, "Java™ Message Service (JMS)") . The Java EE Product Provider must also provide a preconfigured, JMS ConnectionFactory for use by the application in accessing this JMS provider.

The Java EE Product Provider must make the default JMS connection factory accessible to the application under the JNDI name java:comp/defaultJMSConnectionFactory.

The Application Component Provider or Deployer may explicitly bind a JMS ConnectionFactory resource reference to the default connection factory using the lookup element of the Resource annotation or the lookup-name element of the resource-ref deployment descriptor element. For example,

@Resource(name="myJMSCF",
lookup="java:comp/defaultJMSConnectionFactory")
ConnectionFactory myJMScf;

In the absence of such a binding for a JMS connection factory resource reference, the reference will map to a JMS connection factory for the product's JMS provider.
For example, the following will map to a preconfigured connection factory for the product's default JMS provider:

@Resource(name="myJMSCF")
ConnectionFactory myJMScf;


 Comments   
Comment by David Zhao [ 10/Sep/12 ]

Revision 55867.

Comment by David Zhao [ 11/Sep/12 ]

Revert for waiting 1 admin test case pass.

Comment by David Zhao [ 13/Sep/12 ]

Re-commit it by revision 55940.

Comment by Nigel Deakin [ 17/Oct/12 ]

According to the second "Java EE 7 EDR candidate" (EE.5.21) at
http://java.net/projects/javaee-spec/downloads/download/JavaEE_Platform_Spec_EDR2_candidate.pdf the JNDI name of the platform default connection factory has changed to java:comp/DefaultJMSConnectionFactory. The implementation will need updating accordingly.

Comment by David Zhao [ 19/Oct/12 ]

Changed the jndi name to java:comp/DefaultJMSConnectionFactory accordingly.





[GLASSFISH-18958] CLI create-jmsdest does not output object name Created: 30/Jul/12  Updated: 20/Dec/16  Resolved: 18/Oct/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0
Fix Version/s: 4.0_dev

Type: Improvement Priority: Minor
Reporter: Paul Benedict Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 1 hour
Time Spent: Not Specified
Original Estimate: 1 hour

Tags: jms

 Description   

I am running an Ant script to create all my server resources. CLI outputs all the objects as they are created except for JMS Destinations.

Example:

[exec] Command create-jmsdest executed successfully.

Compare this to creating a JMS Resource:

[exec] Administered object jms/MyTopic created
[exec] Command create-jms-resource executed successfully.

It would be nice to add a "Administered object" or similar message that prints out the JMS Destination name.



 Comments   
Comment by Simon Meng [ 18/Oct/12 ]

Fixed revision is 56579.





[GLASSFISH-17050] JMS Defaults Created: 15/Jul/11  Updated: 20/Dec/16  Resolved: 24/Oct/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0
Fix Version/s: 4.0_dev

Type: Improvement Priority: Major
Reporter: mkarg Assignee: David Zhao
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Win7 Pro SP1 64 Bit de_DE



 Description   

Most of our customers are using GF only to drive a single EAR, so the overhead of creating resources per application should get reduced as much as possible.

One attempt could be that there is no need to manually create a JMS destination resource. Our proposal would be that GF comes preconfigured with shared JMS objects. For example, there could be shared default Connection Factory and shared default Topic. In fact, none of our customers ever changes a single configuration parameter other than "Maximum Pool Size" (set to 1000 as our application clients use lots of connections).

By using a generic name like "__default" naming conflicts can be prevented.

Another idea (which is to be understood as additional but not as alternatively) is to have better defaults for JMS resources. Currently the admin GUI has rather good defaults, but some values still need to be improved:

Connection Factory:

  • Maximum Pool Size: For professional applications this should be about 1000.
  • Resource Type: Should default to javax.jms.ConnectionFactory.
  • Pool Name: Should default to "__default" unless the above idea is implemented.

Destination:

  • JNDI Name: Should default to "__default" unless the above idea is implemented.
  • Physical Destination Name: Should default to JNDI name.
  • Resource Type: Should default to "javax.jms.Topic".

If people need other values, they have no additional effort (must give it anyways). But if people are happy with this defaults, they have no efforts at all but just can click "Finish" without giving anything!

This will make administrator's lifes easier for SOHO companies (75% of our customers are SOHO companies).



 Comments   
Comment by David Zhao [ 24/Oct/12 ]

We have already implemented "Default JMS Connection Factory" according to Java EE 7 section EE.5.19 by GLASSFISH-18899.

For there is no default jms destination defined in the coming EE 7 spec, and destination may have 2 types (topic and queue) in nature, we would not implement something like "Default JMS Destination".

Feel free to reopen this issue if you think default destination is important and make it being addressed in EE spec.





[GLASSFISH-19272] deploy MDB failed Created: 01/Nov/12  Updated: 20/Dec/16  Resolved: 17/Dec/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: Simon Meng Assignee: Simon Meng
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File MDBApp.ear     Java Source File MessageBean.java     Text File server.log    
Tags: ee7platspec, jms-2-implementation

 Description   

Use case 1
An application contains a session bean and a MDB. The MDB uses the "@MessageDriven(mappedName=" annotation to specify the JNDI name of the destination. This destination resource is defined using a @JMSDestinationDefinition annotation in the session bean. When the application is deployed, deployment of the MDB fails because the resource does not exist.

Use case 2
An application contains a MDB only. The MDB uses the "@MessageDriven(mappedName=" annotation to specify the JNDI name of the destination. This destination resource is defined using a @JMSDestinationDefinition annotation in the MDB.
When the application is deployed, deployment of the MDB fails because the resource does not exist.

Following exception occured when deploy the MDB, detailed exception stack can see the attached server.log
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: JMS resource not created : java:global/jms/myInboundQueue

Can the resources defined in an application be deployed before MDB deployment?

Attachment list:
MDBApp.ear the reproducer application,
MessageBean.java MDB source code
server.log GF server log



 Comments   
Comment by Hong Zhang [ 05/Nov/12 ]

As this is a JMS specific issue (per Jagadish' comments from the email discussions), ressign to Simon to drive the fix for this issue. The deployment team will work with the JMS team to provide any necessary APIs from the deployment side.

Comment by Simon Meng [ 17/Dec/12 ]

Fixed at revision 57591.





[GLASSFISH-1429] JMS standalone client hangs on exit Created: 06/Nov/06  Updated: 20/Dec/16  Resolved: 24/Oct/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 9.1pe
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: oleksiys Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 1,429
Status Whiteboard:

v2.1.1_exclude


 Description   

This appears to be a bug. Even when the connection is closed, there appears to
be an active MQ client daemon thread which prevents the VM from exiting. Could
you file a GlassFish issue? We shall investigate this further.

> "Timer-0" daemon prio=1 tid=0x09b4b328 nid=0x622f in Object.wait()
[0xa72f8000..0xa72f8f30]
> at java.lang.Object.wait(Native Method)
> - waiting on <0xaa780068> (a java.util.TaskQueue)
> at java.util.TimerThread.mainLoop(Timer.java:509)
> - locked <0xaa780068> (a java.util.TaskQueue)
> at java.util.TimerThread.run(Timer.java:462)
>
> "iMQReadChannel-1" prio=1 tid=0x09b450d0 nid=0x622e runnable
[0xa7379000..0xa7379eb0]
> at java.net.SocketInputStream.socketRead0(Native Method)
> at java.net.SocketInputStream.read(SocketInputStream.java:129)
> at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
> at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
> at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
> - locked <0xaae3dfe8> (a java.io.BufferedInputStream)
> at
com.sun.messaging.jmq.io.ReadOnlyPacket.readFully(ReadOnlyPacket.java:263)
> at
com.sun.messaging.jmq.io.ReadOnlyPacket.readFixedHeader(ReadOnlyPacket.java:183)
> at
com.sun.messaging.jmq.io.ReadOnlyPacket.readPacket(ReadOnlyPacket.java:143)
> at
com.sun.messaging.jmq.io.ReadWritePacket.readPacket(ReadWritePacket.java:73)
> - locked <0xaa73e1f8> (a com.sun.messaging.jmq.io.ReadWritePacket)
> at
com.sun.messaging.jmq.jmsclient.ProtocolHandler.readPacket(ProtocolHandler.java:1719)
> at com.sun.messaging.jmq.jmsclient.ReadChannel.run(ReadChannel.java:1139)
> at java.lang.Thread.run(Thread.java:595)
>
> "imqConnectionFlowControl-1" prio=1 tid=0x09b44c40 nid=0x622d in Object.wait()
[0xa73fa000..0xa73fae30]
> at java.lang.Object.wait(Native Method)
> - waiting on <0xaae3e110> (a com.sun.messaging.jmq.jmsclient.FlowControl)
> at com.sun.messaging.jmq.jmsclient.FlowControl.run(FlowControl.java:290)
> - locked <0xaae3e110> (a com.sun.messaging.jmq.jmsclient.FlowControl)
> at java.lang.Thread.run(Thread.java:595)

Thanks
--Siva.



 Comments   
Comment by gfbugbridge [ 17/Jan/07 ]

<BT6514413>

Comment by Sivakumar Thyagarajan [ 16/Apr/07 ]

Requesting Ramesh to look at this.

Comment by rampsarathy [ 17/Apr/07 ]

There are certain daemon threads associated with a jms connection, since the
connection factory that is looked up is a managed connection factory (belongs to
jms resource adaptor), and the connections are obtained and returned from/to a
connection pool, a connection.close will not actually close the underlying
ohysical connection but only return it to the pool. So the threads that were
created for this connections are also alive as long as the connecion is kept
alive in the pool. And there are specific reasons why these threads have to be
daemon threads and not user threads.
Because of the above reasons the client program hangs, waiting indefinitely (or
until the idle time out in the pool is exhausted) for the threads to exit.

As a workaround we need to configure the connection pool (used by the connector
resource) in such a way that it does not pool connections (closes them
immediately instead of pooling it).
This can be achieved by setting the following pool properties in GlassFish V2

steady-pool-size=0
max-connection-usage-count=1
pool-resize-quantity=1
idle-timeout-in-seconds=5 ( the lesser the better because the connnections will
be closed after this time)

Please use asadmin set --user <user> --passwordfile <file>
domain.resources.connector-connection-pool.<poolname>.<property>=<value>

Using the above values (in b42) the client program exits immediately,

Comment by jthoennes [ 20/Aug/09 ]

See discussion in forums thread:
http://forums.java.net/jive/thread.jspa?threadID=37143

I also remember a related issue with regard to the ACC container.
There was a specific mechanism used to tear down the OpenMQ runtime.

This workaround suggested by rampsarathy is not a solution to this issue.

Comment by rampsarathy [ 20/Aug/09 ]

Assigning to Satish

Comment by Satish Kumar [ 13/Oct/09 ]

This is a GF V2.1 issue. Marking this as v3_exlude

Comment by Satish Kumar [ 13/Oct/09 ]

Adding status white board v3_exclude

Comment by Kim Haase [ 14/Oct/09 ]

This is also an issue at v3 (I'm using glassfish-v3-b68-10_13_2009.zip).

A standalone client jar hangs on exit (with a plain vanilla connection factory).
The only way to prevent the hang is to deploy the jar with the --retrieve option
or to deploy it and then use the get-client-stubs command. The client jar that
is returned contains a Facade class that enables the client to exit.

The standalone client jar that hangs consists of a simple Java class:

jdench 183 =>jar tvf dist/producer.jar
0 Wed Oct 14 10:06:14 EDT 2009 META-INF/
124 Wed Oct 14 10:06:12 EDT 2009 META-INF/MANIFEST.MF
3413 Wed Oct 14 10:06:12 EDT 2009 Producer.class

When I run the jar, the output looks like this. I have to Control-C to exit the app.

jdench 193 =>appclient -client dist/producer.jar queue 3
Oct 14, 2009 10:21:58 AM
com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
INFO: Using
com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the
delegate
Oct 14, 2009 10:22:14 AM com.sun.messaging.jms.ra.ResourceAdapter start
INFO: MQJMSRA_RA1101: SJSMQ JMS Resource Adapter starting: REMOTE
Oct 14, 2009 10:22:14 AM com.sun.messaging.jms.ra.ResourceAdapter start
INFO: MQJMSRA_RA1101: SJSMQ JMSRA Started:REMOTE
Oct 14, 2009 10:22:15 AM com.sun.messaging.jms.ra.ManagedConnectionFactory
setAddressList
INFO: MQJMSRA_MF1101: setAddressList:NOT setting default value=localhost
Oct 14, 2009 10:22:15 AM com.sun.messaging.jms.ra.ManagedConnectionFactory
setPassword
INFO: MQJMSRA_MF1101: setPassword:NOT setting default value
Oct 14, 2009 10:22:15 AM com.sun.messaging.jms.ra.ManagedConnectionFactory
setUserName
INFO: MQJMSRA_MF1101: setUserName:NOT setting default value=guest
Destination type is queue
Sending message: This is message 1
Sending message: This is message 2
Sending message: This is message 3
^C jdench 194 =>

The jar returned after deployment looks like this:

jdench 188 =>jar tvf client-jar/appClient.jar
248 Wed Oct 14 10:13:40 EDT 2009 META-INF/MANIFEST.MF
1696 Wed Oct 14 10:13:40 EDT 2009 META-INF/application-client.xml
893 Wed Oct 14 10:13:40 EDT 2009 META-INF/sun-application-client.xml
18414 Wed Oct 14 10:13:40 EDT 2009
org/glassfish/appclient/client/AppClientFacade.class

When it runs, the output looks like this:

jdench 191 =>appclient -client client-jar/appClient.jar queue 3
Oct 14, 2009 10:18:52 AM
com.sun.enterprise.transaction.JavaEETransactionManagerSimplified initDelegates
INFO: Using
com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate as the
delegate
Oct 14, 2009 10:19:20 AM com.sun.messaging.jms.ra.ResourceAdapter start
INFO: MQJMSRA_RA1101: SJSMQ JMS Resource Adapter starting: REMOTE
Oct 14, 2009 10:19:21 AM com.sun.messaging.jms.ra.ResourceAdapter start
INFO: MQJMSRA_RA1101: SJSMQ JMSRA Started:REMOTE
Oct 14, 2009 10:19:23 AM com.sun.messaging.jms.ra.ManagedConnectionFactory
setAddressList
INFO: MQJMSRA_MF1101: setAddressList:NOT setting default value=localhost
Oct 14, 2009 10:19:23 AM com.sun.messaging.jms.ra.ManagedConnectionFactory
setPassword
INFO: MQJMSRA_MF1101: setPassword:NOT setting default value
Oct 14, 2009 10:19:23 AM com.sun.messaging.jms.ra.ManagedConnectionFactory
setUserName
INFO: MQJMSRA_MF1101: setUserName:NOT setting default value=guest
Destination type is queue
Sending message: This is message 1
Sending message: This is message 2
Sending message: This is message 3
Oct 14, 2009 10:19:24 AM com.sun.messaging.jms.ra.ResourceAdapter stop
INFO: MQJMSRA_RA1101: SJSMQ JMSRA stopping...
Oct 14, 2009 10:19:24 AM com.sun.messaging.jms.ra.ResourceAdapter stop
INFO: MQJMSRA_RA1101: SJSMQ JMSRA stopped.
Oct 14, 2009 10:19:24 AM
com.sun.enterprise.connectors.service.ResourceAdapterAdminServiceImpl
sendStopToResourceAdapter
INFO: ra.stop-successful

Comment by Ed Bratt [ 15/Oct/09 ]

Will not fix in v2.1.1

Comment by Satish Kumar [ 26/Oct/09 ]

Removing v3_exclude from the status whiteboard since this appears to be a
problem in V3 as well.

Comment by jicai.liu [ 05/May/11 ]

When i set the property "jms.jmsra.inAcc" with the value "false",it works well~
note: in version 2

Comment by jthoennes [ 12/May/11 ]

In reply to comment #11:
> When i set the property "jms.jmsra.inAcc" with the value "false",it works well~

I guess you mean "imq.jmsra.inAcc"? Shall I set this as a system property as in:

java -Dimq.jmsra.inAcc=false

Were are these system properties documented?

Comment by claus_list [ 12/Jun/11 ]

java -Dimq.jmsra.inAcc=false

Works on my consumer but not on the producer. (same setup standalone clients according to the tutorial)

Does not work for me. Is there another system property ?

Comment by Tom Mueller [ 06/Mar/12 ]

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.

Comment by David Zhao [ 24/Oct/12 ]

Fixed.





[GLASSFISH-11721] GF does not allow all required passwords to be passed to managed MQ broker Created: 24/Mar/10  Updated: 20/Dec/16  Resolved: 12/Nov/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 3.1
Fix Version/s: 4.0_dev

Type: Improvement Priority: Major
Reporter: Satish Kumar Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issuezilla Id: 11,721
Tags: ee7ri_cleanup_deferred, jms4candidate

 Description   

A MQ password file allows you to specify

o keystore password (imq.keystore.password)
o LDAP repository password (imq.user_repository.ldap.password)
o JDBC database password (imq.persist.jdbc.password)
o imqcmd password (imq.imqcmd.password)
o broker bridge service manager administrator password
(imq.bridge.admin.password)

This is normally done by passing a password file to the
broker. However Glassfish also passes in a password file on the
command line, which overrides any password file configured in the
broker properties. Currently, GF does not provide users the option to configure
and use the above mentioned properties. We need a way to enable this in GF.



 Comments   
Comment by Nigel Deakin [ 07/May/10 ]

Following changes to MQ 4.5, Glassfish no longer needs to use a password file to
pass passwords to the managed broker. Updating issue summary accordingly.

Comment by Tom Mueller [ 06/Mar/12 ]

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.

Comment by Tom Mueller [ 18/Oct/12 ]

Marking the fix version field as "future-release". This is based on an evaluation by John, Michael, and Tom WRT to the PRD for the Java EE 7 RI/SDK. This issue was deemed to not be a P1 for that release. If this is in error or there are other reasons why this RFE should be targeted for the Java EE 7 RI/SDK release, then change the fix version field back to an appropriate build.

Comment by Simon Meng [ 12/Nov/12 ]

Currently, user can set the mq required passwords via GF jms-service properties. GF call setBrokerProps method to pass these properties to jmsra. jmsra can get the required passwords from broker properties.
GF support password aliases process. That means when setting jms-service properties, user can use plain text or password aliases as propterty value.





[GLASSFISH-16106] change-master-broker command does not map all the JMX error codes to corresponding error messages Created: 28/Feb/11  Updated: 20/Dec/16  Resolved: 08/Nov/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 3.1
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: Satish Kumar Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Tags: 3-1-exclude, 3_1-exclude, 3_1-next, 3_1_1-next, 3_1_1-scrubbed, 3_1_x-exclude

 Description   

The change-master-broker command currently does not map all the JMX codes returned by MQ to corresponding error messages. The following error messages are returned by imq change-masterbroker implimentation:

Please note that the returned errorCode string from MQ JMX interface changeMasterBroker call also contains
the statusCode in string form (like "OK", "BAD_REQUEST", ..).

"The MQ JMX changeMasterBroker operation can return following status

a) OK
The operation has returned successfully. It is guaranteed that both the old master broker
and the new master broker have switched its master broker to the new master broker.
Any broker that is not running or network partitioned with the master broker when this command is running,
would need to be restarted with explicit new master broker configuration.

b) BAD_REQUEST, NOT_ALLOWED, UNAVAILABLE, PRECONDITION_FAILED
When these status are returned, the current master broker configuration in
the cluster is not affected.

c) An error status other than a) and b)
The cluster should be shutdown and configured with the new master broker as the
master broker then restarts. "

Except OK statusCode, all other status in string form is contained in the returned errorCode String.



 Comments   
Comment by David Zhao [ 08/Nov/12 ]

Revision: 56906





[GLASSFISH-19360] Update handling of JMS connection factory resource configuration metadata to match latest spec Created: 20/Nov/12  Updated: 20/Dec/16  Resolved: 28/Nov/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0
Fix Version/s: 4.0_dev

Type: New Feature Priority: Major
Reporter: Nigel Deakin Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Tags: jms-2-implementation

 Description   

Since GLASSFISH-18900 was implemented the <jms-connection-factory> element (defined in the Java EE 7 schema) and the JMSConnectionFactoryDefinition annotation (defined in MQ) have changed.

The url and connectionTimeout elements have been removed from the JMSConnectionFactoryDefinition annotation

The connectionTimeout element has been removed from the <jms-connection-factory> element.

GlassFish's support for <jms-connection-factory> and JMSConnectionFactoryDefinition needs to be updated accordingly.



 Comments   
Comment by Nigel Deakin [ 20/Nov/12 ]

This needs to be done before MQ sprint 7 can be integrated into GlassFish.

Comment by Simon Meng [ 28/Nov/12 ]

Fixed at revision 57184.





[GLASSFISH-19445] [Regression] Creation of JMS resources fails Created: 14/Dec/12  Updated: 20/Dec/16  Resolved: 15/Dec/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Critical
Reporter: Alex Pineda Assignee: David Zhao
Resolution: Works as designed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Glassfish 4.0 build 57 and greater, system running OEL 6, Firefox browser 10.6, JDK 1.7_03


Tags: 40-regression

 Description   

The following set of commands are part of the CLI regression test suite. Basically is creating the JMS resource and then checking them all. At this point, this whole scenario is failing. Noticed the issue starting with build 57, but it worked prior to build 53. The sequence of events are:

  • Install GF 4.0
  • Start the domain
  • Execute the following:
    o asadmin --host wolfrun --port 4848 --terse=false create-jms-resource --restype javax.jms.TopicConnectionFactory jms/res1
    o asadmin --host wolfrun --port 4848 get domain.resources.connector-connection-pool.jms/res1.*

The output results with build 53 are:
domain.resources.connector-connection-pool.jms/res1.associate-with-thread=false
domain.resources.connector-connection-pool.jms/res1.connection-creation-retry-attempts=0
domain.resources.connector-connection-pool.jms/res1.connection-creation-retry-interval-in-seconds=10
domain.resources.connector-connection-pool.jms/res1.connection-definition-name=javax.jms.TopicConnectionFactory
domain.resources.connector-connection-pool.jms/res1.connection-leak-reclaim=false
domain.resources.connector-connection-pool.jms/res1.connection-leak-timeout-in-seconds=0
domain.resources.connector-connection-pool.jms/res1.fail-all-connections=false
domain.resources.connector-connection-pool.jms/res1.idle-timeout-in-seconds=300
domain.resources.connector-connection-pool.jms/res1.is-connection-validation-required=false
domain.resources.connector-connection-pool.jms/res1.lazy-connection-association=false
domain.resources.connector-connection-pool.jms/res1.lazy-connection-enlistment=false
domain.resources.connector-connection-pool.jms/res1.match-connections=true
domain.resources.connector-connection-pool.jms/res1.max-connection-usage-count=0
domain.resources.connector-connection-pool.jms/res1.max-pool-size=250
domain.resources.connector-connection-pool.jms/res1.max-wait-time-in-millis=60000
domain.resources.connector-connection-pool.jms/res1.name=jms/res1
domain.resources.connector-connection-pool.jms/res1.object-type=user
domain.resources.connector-connection-pool.jms/res1.ping=false
domain.resources.connector-connection-pool.jms/res1.pool-resize-quantity=2
domain.resources.connector-connection-pool.jms/res1.pooling=true
domain.resources.connector-connection-pool.jms/res1.resource-adapter-name=jmsra
domain.resources.connector-connection-pool.jms/res1.steady-pool-size=1
domain.resources.connector-connection-pool.jms/res1.validate-atmost-once-period-in-seconds=0
Command get executed successfully.

The error and output seen in build 57 and in build 66 are:
remote failure: Dotted name path domain.resources.connector-connection-pool.jms/res1.* not found.
Command get failed.



 Comments   
Comment by David Zhao [ 15/Dec/12 ]

It is desired that the connection pool created by "create-jms-resource" will have "-Connection-pool" suffix appended automatically. Please see GLASSFISH-15104 for more details on why it is required for making resource name identical across domain.

Now you can get the properties by the the CLI command (-Connection-Pool suffix is required for the name of connection pool):

asadmin --host wolfrun --port 4848 get domain.resources.connector-connection-pool.jms/res1-Connection-Pool.*





[GLASSFISH-19453] Calling Connection.createSession() to create a second session in ejb/web should throw JMSException Created: 17/Dec/12  Updated: 20/Dec/16  Resolved: 17/Dec/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Major
Reporter: alanf760 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

N/A



 Description   

The following tests fail in CTS JMS:

FAILED........com/sun/ts/tests/jms/core20/connectiontests/Client.java#createSessionTest1_from_ejb
FAILED........com/sun/ts/tests/jms/core20/connectiontests/Client.java#createSessionTest1_from_jsp
FAILED........com/sun/ts/tests/jms/core20/connectiontests/Client.java#createSessionTest1_from_servlet

Calling Connection.createSession() to create a second session MUST throw a
JMSException in web/ejb containers if there is already an active session open.
It allows the call in web/ejb containers.






[GLASSFISH-19454] Creating a Queue Browser with a selector is not working. Created: 17/Dec/12  Updated: 20/Dec/16  Resolved: 17/Dec/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: adf59 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

N/A



 Description   

The following tests fail in CTS JMS:

FAILED........com/sun/ts/tests/jms/core20/jmscontextqueuetests/Client.java#createQueueBrowserTest_from_appclient
FAILED........com/sun/ts/tests/jms/core20/jmscontextqueuetests/Client.java#createQueueBrowserTest_from_ejb
FAILED........com/sun/ts/tests/jms/core20/jmscontextqueuetests/Client.java#createQueueBrowserTest_from_jsp
FAILED........com/sun/ts/tests/jms/core20/jmscontextqueuetests/Client.java#createQueueBrowserTest_from_servlet

Creating a Queue Browser with a selector is not working.

Send 2 messages with "lastMessage=false"
Send 3rd message with "lastMessage=true"

qBrowser = context.createBrowser(queue, "lastMessage = TRUE");

While enumerating through the qBroswer objects we should only get 1 message
the last message where "lastMessage=true". We get all 3 messages.






[GLASSFISH-19441] ConnectionFactory created using @JMSConnectionFactoryDefinition does not use default credentials Created: 14/Dec/12  Updated: 20/Dec/16  Resolved: 05/Jan/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: Nigel Deakin Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Zip Archive JMS20Demo.zip     Text File server.log    
Tags: jms-2-implementation

 Description   

I have a simple application which defines a JMS connection factory using the following annotation:

@JMSConnectionFactoryDefinition(
    name="java:global/jms/demoConnectionFactory",
    className= "javax.jms.ConnectionFactory",
    description="ConnectionFactory to use in demonstration",
    resourceAdapterName="jmsra"
)  

It then uses the following annotation to inject a connection factory:

    @Resource(lookup = "java:global/jms/demoConnectionFactory")
    ConnectionFactory connectionFactory;

and uses it to create a connection:

Connection connection = connectionFactory.createConnection();

This fails with

SEVERE: com.sun.messaging.jmq.auth.api.FailedLoginException: [B4051]: Forbidden guest

See attached server log for the full exception.

To reproduce the problem, unzip the attached Netbeans project and deploy in GlassFish (I used build 67). The navigate directly to http://localhost:8080/JMS20Demo/Servlet1?option=JavaEESenderOld and look in the server log.

The code itself is in the session bean JavaEESenderOld. Note that the same business method also creates a connection using a connection factory defined in glassfish-resources.xml. That works fine using the default credentials.

A quick analysis of the exception in the debugger suggests that if the connection factory is created using glassfish-resources.xml then the password used us "guest", but if the connection factory is created using @JMSConnectionFactoryDefinition then the password used is "", which is invalid.

If you explicitly set user and password in @JMSConnectionFactoryDefinition then it works fine. The problem is if user/password is not set. A quick analysis in the debugger suggests that JMSRA is passing a correct user/password to the connection pool (using a javax.resource.spi.ConnectionRequestInfo). However the password is getting overridden somewhere.

This example was demonstrated at JavaOne in October 2012, and so is a regression since then.



 Comments   
Comment by Nigel Deakin [ 02/Jan/13 ]

Confirmed that this is still an issue with glassfish-4.0-b70-12_31_2012.

This is a regression since glassfish-4.0-b56-09_24_2012.

Comment by Simon Meng [ 04/Jan/13 ]

@JMSConnectionFactoryDefinition(
name="java:global/jms/demoConnectionFactory",
className= "javax.jms.ConnectionFactory",
description="ConnectionFactory to use in demonstration",
properties=

{"UserName=myuser", "Password=mypassword"}

,
resourceAdapterName="jmsra",
user="guest",
password="guest"
)

If user and password are defined in both annotation attribute and property list, which one takes effect?

Comment by Simon Meng [ 05/Jan/13 ]

Fixed at revision 57972.





[GLASSFISH-19465] creating Connection or JMSContext with invalid username/password MUST throw JMSSecurityException Created: 17/Dec/12  Updated: 20/Dec/16  Resolved: 17/Dec/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Major
Reporter: alanf760 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

N/A



 Description   

(1) This following tests fail in CTS JMS. All test cases in these tests expect the JMS RI to throw
JMSSecurityException. The JMS RI throws a JMSException with a nested JMSSecurityException.

FAILED........com/sun/ts/tests/jms/core20/connectionfactorytests/Client.java#createConnectionExceptionTests_from_ap
FAILED........com/sun/ts/tests/jms/core20/connectionfactorytests/Client.java#createConnectionExceptionTests_from_ej
FAILED........com/sun/ts/tests/jms/core20/connectionfactorytests/Client.java#createConnectionExceptionTests_from_js
FAILED........com/sun/ts/tests/jms/core20/connectionfactorytests/Client.java#createConnectionExceptionTests_from_se

(2) This following tests fail in CTS JMS. All test cases in these tests expect the JMS RI to throw
JMSSecurityRuntimeException. The JMS RI throws a JMSException with a nested JMSSecurityException.

FAILED........com/sun/ts/tests/jms/core20/connectionfactorytests/Client.java#createJMSContextExceptionTests_from_ap
FAILED........com/sun/ts/tests/jms/core20/connectionfactorytests/Client.java#createJMSContextExceptionTests_from_ej
FAILED........com/sun/ts/tests/jms/core20/connectionfactorytests/Client.java#createJMSContextExceptionTests_from_js
FAILED........com/sun/ts/tests/jms/core20/connectionfactorytests/Client.java#createJMSContextExceptionTests_from_se






[GLASSFISH-19463] Creating shared/durable consumer with nolocal=true and clientid unset MUST throw IllegalStateException Created: 17/Dec/12  Updated: 20/Dec/16  Resolved: 17/Dec/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: alanf760 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

N/A



 Description   

(1) This following tests fail in CTS JMS. All test cases in these tests expect the JMS RI to
throw IllegalStateException or IllegalStateRuntimeException. In the case where you create a
Shared Consumer or Durable Consumer with client id unset and nolocal=true you MUST get
an IllegalStateException or IllegalStateRuntimeException. You don't.

FAILED........com/sun/ts/tests/jms/core20/jmscontexttopictests/Client.java#illegalStateRuntimeExceptionTest_from_ap
FAILED........com/sun/ts/tests/jms/core20/jmscontexttopictests/Client.java#illegalStateRuntimeExceptionTest_from_ej
FAILED........com/sun/ts/tests/jms/core20/jmscontexttopictests/Client.java#illegalStateRuntimeExceptionTest_from_js
FAILED........com/sun/ts/tests/jms/core20/jmscontexttopictests/Client.java#illegalStateRuntimeExceptionTest_from_se
FAILED........com/sun/ts/tests/jms/core20/sessiontests/Client.java#illegalStateExceptionTests_from_appclient
FAILED........com/sun/ts/tests/jms/core20/sessiontests/Client.java#illegalStateExceptionTests_from_ejb
FAILED........com/sun/ts/tests/jms/core20/sessiontests/Client.java#illegalStateExceptionTests_from_jsp
FAILED........com/sun/ts/tests/jms/core20/sessiontests/Client.java#illegalStateExceptionTests_from_servlet






[GLASSFISH-19464] Setting invalid Priority or invalid Delivery Mode MUST throw JMSException/JMSRuntimeException Created: 17/Dec/12  Updated: 20/Dec/16  Resolved: 17/Dec/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: alanf760 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

N/A



 Description   

(1) This following tests fail in CTS JMS. All test cases in these tests expect the JMS RI to
throw JMSRuntimeException or JMSException. Setting an invalid Priority or Invalid Delivery
Mode MUST throw a JMSRuntimeException or JMSException. It doesn't.

FAILED........com/sun/ts/tests/jms/core20/jmscontexttopictests/Client.java#jMSRuntimeExceptionTests_from_appclient
FAILED........com/sun/ts/tests/jms/core20/jmscontexttopictests/Client.java#jMSRuntimeExceptionTests_from_ejb
FAILED........com/sun/ts/tests/jms/core20/jmscontexttopictests/Client.java#jMSRuntimeExceptionTests_from_jsp
FAILED........com/sun/ts/tests/jms/core20/jmscontexttopictests/Client.java#jMSRuntimeExceptionTests_from_servlet
FAILED........com/sun/ts/tests/jms/core20/messageproducertests/Client.java#JMSExceptionTests_from_appclient
FAILED........com/sun/ts/tests/jms/core20/messageproducertests/Client.java#JMSExceptionTests_from_ejb
FAILED........com/sun/ts/tests/jms/core20/messageproducertests/Client.java#JMSExceptionTests_from_jsp
FAILED........com/sun/ts/tests/jms/core20/messageproducertests/Client.java#JMSExceptionTests_from_servlet



 Comments   
Comment by adf59 [ 17/Dec/12 ]

This is a duplicate of https://coherence.us.oracle.com/jira/browse/JMS-188





[GLASSFISH-19461] All resource adapter tests in JMS CTS fail with InvalidDestinationException: [C4050]: Invalid destination name Created: 17/Dec/12  Updated: 20/Dec/16  Resolved: 17/Dec/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Major
Reporter: alanf760 Assignee: David Zhao
Resolution: Invalid Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

N/A



 Description   

The following tests fail in CTS JMS. All resource adapter tests fail to deploy on GlassFish. Get
exception: Caused by: javax.jms.InvalidDestinationException: [C4050]: Invalid destination name -

{0}

FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/queue/selectorauto/annotated/Client.java#negativeTest1
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/queue/selectorauto/annotated/Client.java#negativeTest2
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/queue/selectorauto/annotated/Client.java#test1
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/queue/selectorauto/descriptor/Client.java#negativeTest1
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/queue/selectorauto/descriptor/Client.java#negativeTest2
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/queue/selectorauto/descriptor/Client.java#test1
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/queue/selectordups/annotated/Client.java#negativeTest1
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/queue/selectordups/annotated/Client.java#negativeTest2
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/queue/selectordups/annotated/Client.java#test1
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/queue/selectordups/descriptor/Client.java#negativeTest1
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/queue/selectordups/descriptor/Client.java#negativeTest2
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/queue/selectordups/descriptor/Client.java#test1
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/noselnocltidnosubnamedurable/annotated/Client.jav
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/noselnocltidnosubnamedurable/descriptor/Client.ja
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/selectorautoclientiddurable/annotated/Client.java
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/selectorautoclientiddurable/annotated/Client.java
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/selectorautoclientiddurable/annotated/Client.java
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/selectorautoclientiddurable/descriptor/Client.jav
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/selectorautoclientiddurable/descriptor/Client.jav
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/selectorautoclientiddurable/descriptor/Client.jav
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/selectordupsnondurable/annotated/Client.java#nega
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/selectordupsnondurable/annotated/Client.java#nega
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/selectordupsnondurable/annotated/Client.java#test
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/selectordupsnondurable/descriptor/Client.java#neg
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/selectordupsnondurable/descriptor/Client.java#neg
FAILED........com/sun/ts/tests/jms/ee20/ra/activationconfig/topic/selectordupsnondurable/descriptor/Client.java#tes



 Comments   
Comment by Nigel Deakin [ 17/Dec/12 ]

This feature is not yet implemented and so this is not a bug.





[GLASSFISH-19455] The JMS Ri throws wrong exception when trying to change the client identifier Created: 17/Dec/12  Updated: 20/Dec/16  Resolved: 17/Dec/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: alanf760 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

N/A



 Description   

(1) This following 2 tests fail in CTS JMS. The JMS RI throws a JMSRuntimeException
with a nested InvalidClientIDException. The test expects a InvalidClientIDRuntimeException
to be thrown.

FAILED........com/sun/ts/tests/jms/core20/appclient/jmscontextqueuetests/Client.java#setGetChangeClientIDTest
FAILED........com/sun/ts/tests/jms/core20/appclient/jmscontexttopictests/Client.java#setGetChangeClientIDTest

(2) The test below fails in CTS JMS because the JMS RI allows you to set the client id on a
JMSContext that is already administratvely configured with a client id. The test
expects an IllegalStateRuntimeException to be thrown.

FAILED........com/sun/ts/tests/jms/core20/appclient/jmscontexttopictests/Client.java#setClientIDOnAdminConfiguredID






[GLASSFISH-19456] The JMS RI throws XAException for one of the CDI bean use case test (beanUseCaseK) Created: 17/Dec/12  Updated: 20/Dec/16  Resolved: 02/Jul/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: adf59 Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The following tests fail in CTS JMS.

FAILED........com/sun/ts/tests/jms/ee20/cditests/usecases/Client.java#beanUseCaseK

Get the following exception.

[#|2012-12-16T22:17:13.153+0000|SEVERE|44.0|javax.resourceadapter.mqjmsra.outbound.connection|_ThreadID=443;_ThreadName=p: thread-pool-1; w: 8;_TimeMillis=1355696233153;_LevelValue=1000;|startTransaction (XA) on JMSService:jmsdirect failed for connectionId:7157974240937103104 due to Unknown JMSService server error NOT_FOUND: com.sun.messaging.jmq.jmsserver.util.BrokerException: Unknown XID 616463363134303338302C7365727665722C50333639392C00F603000083E6A9A5616463363134303338302C7365727665722C5033363939|#]

[#|2012-12-16T22:17:13.153+0000|WARNING|44.0|javax.enterprise.system.core.transaction.com.sun.jts.jta|_ThreadID=443;_ThreadName=p: thread-pool-1; w: 8;_TimeMillis=1355696233153;_LevelValue=900;_MessageID=jts.resource_outside_transaction;|JTS5041: The resource manager is doing work outside a global transaction
javax.transaction.xa.XAException
at com.sun.messaging.jms.ra.DirectXAResource.sendStartToBroker(DirectXAResource.java:853)
at com.sun.messaging.jms.ra.DirectXAResource.start(DirectXAResource.java:804)
at com.sun.jts.jta.TransactionState.startAssociation(TransactionState.java:320)
at com.sun.jts.jta.TransactionImpl.enlistResource(TransactionImpl.java:212)
at com.sun.enterprise.transaction.JavaEETransactionImpl.enlistResource(JavaEETransactionImpl.java:660)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.enlistXAResource(JavaEETransactionManagerSimplified.java:1277)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.enlistResource(JavaEETransactionManagerSimplified.java:368)
at com.sun.enterprise.resource.rm.ResourceManagerImpl.registerResource(ResourceManagerImpl.java:152)
at com.sun.enterprise.resource.rm.ResourceManagerImpl.enlistResource(ResourceManagerImpl.java:112)
at com.sun.enterprise.resource.pool.PoolManagerImpl.getResource(PoolManagerImpl.java:211)
at com.sun.enterprise.connectors.ConnectionManagerImpl.getResource(ConnectionManagerImpl.java:337)
at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:306)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:207)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:170)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165)
at com.sun.messaging.jms.ra.DirectConnectionFactory._allocateConnection(DirectConnectionFactory.java:567)
at com.sun.messaging.jms.ra.DirectConnectionFactory.createConnection(DirectConnectionFactory.java:260)
at com.sun.messaging.jms.ra.DirectConnectionFactory.createConnection(DirectConnectionFactory.java:239)
at com.sun.messaging.jmq.jmsclient.JMSContextImpl.<init>(JMSContextImpl.java:204)
at com.sun.messaging.jms.ra.DirectConnectionFactory.createContext(DirectConnectionFactory.java:285)
at org.glassfish.jms.injection.AbstractJMSContextManager.createContext(AbstractJMSContextManager.java:78)
at org.glassfish.jms.injection.AbstractJMSContextManager.getContext(AbstractJMSContextManager.java:93)
at org.glassfish.jms.injection.TransactedJMSContextManager$Proxy$$$_WeldClientProxy.getContext(TransactedJMSContextManager$Proxy$$$_WeldClientProxy.java)
at org.glassfish.jms.injection.InjectableJMSContext.toString(InjectableJMSContext.java:133)
at java.lang.String.valueOf(String.java:2902)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at com.sun.ts.tests.jms.ee20.cditests.usecases.CMBean1.method6(CMBean1.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1035)
at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1107)
at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4676)
at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:625)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:796)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:577)
at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:49)
at sun.reflect.GeneratedMethodAccessor504.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:857)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:796)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:577)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:162)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:144)
at sun.reflect.GeneratedMethodAccessor512.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:857)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:796)
at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4648)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4636)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:205)
at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)
at $Proxy393.method6(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:143)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:173)
at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528)
at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1596)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1458)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:966)
at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:214)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:718)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:515)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.doWork(MessageMediatorImpl.java:2291)
at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)
at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)
Caused by: com.sun.messaging.jmq.jmsservice.JMSServiceException: startTransaction: start transaction failed. Connection ID: 7157974240937103104, session ID: 0, XID: (Available at FINE log level)
at com.sun.messaging.jmq.jmsserver.service.imq.IMQDirectService.startTransaction(IMQDirectService.java:1558)
at com.sun.messaging.jms.ra.DirectXAResource.sendStartToBroker(DirectXAResource.java:823)
... 73 more
Caused by: com.sun.messaging.jmq.jmsserver.util.BrokerException: Unknown XID 616463363134303338302C7365727665722C50333639392C00F603000083E6A9A5616463363134303338302C7365727665722C5033363939
at com.sun.messaging.jmq.jmsserver.data.protocol.ProtocolImpl.startTransaction(ProtocolImpl.java:686)
at com.sun.messaging.jmq.jmsserver.service.imq.IMQDirectService.startTransaction(IMQDirectService.java:1547)
... 74 more

#]

[#|2012-12-16T22:17:13.162+0000|SEVERE|44.0|javax.enterprise.resource.resourceadapter.com.sun.enterprise.resource.rm|_ThreadID=443;_ThreadName=p: thread-pool-1; w: 8;_TimeMillis=1355696233162;_LevelValue=1000;_MessageID=poolmgr.component_register_exception;|RAR5029:Unexpected exception while registering component
javax.transaction.SystemException
at com.sun.jts.jta.TransactionImpl.enlistResource(TransactionImpl.java:224)
at com.sun.enterprise.transaction.JavaEETransactionImpl.enlistResource(JavaEETransactionImpl.java:660)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.enlistXAResource(JavaEETransactionManagerSimplified.java:1277)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.enlistResource(JavaEETransactionManagerSimplified.java:368)
at com.sun.enterprise.resource.rm.ResourceManagerImpl.registerResource(ResourceManagerImpl.java:152)
at com.sun.enterprise.resource.rm.ResourceManagerImpl.enlistResource(ResourceManagerImpl.java:112)
at com.sun.enterprise.resource.pool.PoolManagerImpl.getResource(PoolManagerImpl.java:211)
at com.sun.enterprise.connectors.ConnectionManagerImpl.getResource(ConnectionManagerImpl.java:337)
at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:306)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:207)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:170)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165)
at com.sun.messaging.jms.ra.DirectConnectionFactory._allocateConnection(DirectConnectionFactory.java:567)
at com.sun.messaging.jms.ra.DirectConnectionFactory.createConnection(DirectConnectionFactory.java:260)
at com.sun.messaging.jms.ra.DirectConnectionFactory.createConnection(DirectConnectionFactory.java:239)
at com.sun.messaging.jmq.jmsclient.JMSContextImpl.<init>(JMSContextImpl.java:204)
at com.sun.messaging.jms.ra.DirectConnectionFactory.createContext(DirectConnectionFactory.java:285)
at org.glassfish.jms.injection.AbstractJMSContextManager.createContext(AbstractJMSContextManager.java:78)
at org.glassfish.jms.injection.AbstractJMSContextManager.getContext(AbstractJMSContextManager.java:93)
at org.glassfish.jms.injection.TransactedJMSContextManager$Proxy$$$_WeldClientProxy.getContext(TransactedJMSContextManager$Proxy$$$_WeldClientProxy.java)
at org.glassfish.jms.injection.InjectableJMSContext.toString(InjectableJMSContext.java:133)
at java.lang.String.valueOf(String.java:2902)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at com.sun.ts.tests.jms.ee20.cditests.usecases.CMBean1.method6(CMBean1.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1035)
at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1107)
at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4676)
at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:625)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:796)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:577)
at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:49)
at sun.reflect.GeneratedMethodAccessor504.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:857)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:796)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:577)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:162)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:144)
at sun.reflect.GeneratedMethodAccessor512.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:857)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:796)
at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4648)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4636)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:205)
at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)
at $Proxy393.method6(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:143)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:173)
at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528)
at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1596)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1458)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:966)
at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:214)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:718)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:515)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.doWork(MessageMediatorImpl.java:2291)
at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)
at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)

#]

[#|2012-12-16T22:17:13.162+0000|WARNING|44.0|javax.enterprise.resource.resourceadapter.com.sun.enterprise.resource.pool|_ThreadID=443;_ThreadName=p: thread-pool-1; w: 8;_TimeMillis=1355696233162;_LevelValue=900;_MessageID=poolmgr.err_enlisting_res_in_getconn;|RAR7132: Unable to enlist the resource in transaction. Returned resource to pool. Pool name: [ jms/ConnectionFactory-Connection-Pool ]|#]

[#|2012-12-16T22:17:13.162+0000|WARNING|44.0|javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors|_ThreadID=443;_ThreadName=p: thread-pool-1; w: 8;_TimeMillis=1355696233162;_LevelValue=900;_MessageID=poolmgr.get_connection_failure;|RAR5117 : Failed to obtain/create connection from connection pool [ jms/ConnectionFactory-Connection-Pool ]. Reason : com.sun.appserv.connectors.internal.api.PoolingException: javax.transaction.SystemException
com.sun.appserv.connectors.internal.api.PoolingException: javax.transaction.SystemException
at com.sun.enterprise.resource.pool.PoolManagerImpl.getResource(PoolManagerImpl.java:221)
at com.sun.enterprise.connectors.ConnectionManagerImpl.getResource(ConnectionManagerImpl.java:337)
at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:306)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:207)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:170)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165)
at com.sun.messaging.jms.ra.DirectConnectionFactory._allocateConnection(DirectConnectionFactory.java:567)
at com.sun.messaging.jms.ra.DirectConnectionFactory.createConnection(DirectConnectionFactory.java:260)
at com.sun.messaging.jms.ra.DirectConnectionFactory.createConnection(DirectConnectionFactory.java:239)
at com.sun.messaging.jmq.jmsclient.JMSContextImpl.<init>(JMSContextImpl.java:204)
at com.sun.messaging.jms.ra.DirectConnectionFactory.createContext(DirectConnectionFactory.java:285)
at org.glassfish.jms.injection.AbstractJMSContextManager.createContext(AbstractJMSContextManager.java:78)
at org.glassfish.jms.injection.AbstractJMSContextManager.getContext(AbstractJMSContextManager.java:93)
at org.glassfish.jms.injection.TransactedJMSContextManager$Proxy$$$_WeldClientProxy.getContext(TransactedJMSContextManager$Proxy$$$_WeldClientProxy.java)
at org.glassfish.jms.injection.InjectableJMSContext.toString(InjectableJMSContext.java:133)
at java.lang.String.valueOf(String.java:2902)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at com.sun.ts.tests.jms.ee20.cditests.usecases.CMBean1.method6(CMBean1.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1035)
at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1107)
at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4676)
at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:625)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:796)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:577)
at org.jboss.weld.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:49)
at sun.reflect.GeneratedMethodAccessor504.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:857)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:796)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:577)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:162)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:144)
at sun.reflect.GeneratedMethodAccessor512.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:857)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:796)
at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369)
at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4648)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4636)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:205)
at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)
at $Proxy393.method6(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:143)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:173)
at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528)
at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1596)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1458)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:966)
at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:214)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:718)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:515)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.doWork(MessageMediatorImpl.java:2291)
at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)
at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)
Caused by: com.sun.appserv.connectors.internal.api.PoolingException: javax.transaction.SystemException
at com.sun.enterprise.resource.rm.ResourceManagerImpl.registerResource(ResourceManagerImpl.java:173)
at com.sun.enterprise.resource.rm.ResourceManagerImpl.enlistResource(ResourceManagerImpl.java:112)
at com.sun.enterprise.resource.pool.PoolManagerImpl.getResource(PoolManagerImpl.java:211)
... 64 more
Caused by: javax.transaction.SystemException
at com.sun.jts.jta.TransactionImpl.enlistResource(TransactionImpl.java:224)
at com.sun.enterprise.transaction.JavaEETransactionImpl.enlistResource(JavaEETransactionImpl.java:660)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.enlistXAResource(JavaEETransactionManagerSimplified.java:1277)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.enlistResource(JavaEETransactionManagerSimplified.java:368)
at com.sun.enterprise.resource.rm.ResourceManagerImpl.registerResource(ResourceManagerImpl.java:152)
... 66 more

#]

[#|2012-12-16T22:17:13.163+0000|WARNING|44.0|javax.enterprise.system.core.transaction.com.sun.jts.jtsxa|_ThreadID=443;_ThreadName=p: thread-pool-1; w: 8;_TimeMillis=1355696233163;_LevelValue=900;_MessageID=jts.unexpected_error_occurred_twopc_rollback;|JTS5068: Unexpected error occurred in rollback
java.lang.IllegalStateException: Wrong XAState: -1
at com.sun.jts.jta.TransactionState._rollback(TransactionState.java:222)
at com.sun.jts.jta.TransactionState.rollback(TransactionState.java:180)
at com.sun.jts.jtsxa.OTSResourceImpl.rollback(OTSResourceImpl.java:333)
at com.sun.jts.CosTransactions.RegisteredResources.distributeRollback(RegisteredResources.java:1040)
at com.sun.jts.CosTransactions.TopCoordinator.rollback(TopCoordinator.java:2291)
at com.sun.jts.CosTransactions.CoordinatorTerm.rollback(CoordinatorTerm.java:530)
at com.sun.jts.CosTransactions.TerminatorImpl.rollback(TerminatorImpl.java:286)
at com.sun.jts.CosTransactions.CurrentImpl.rollback(CurrentImpl.java:767)
at com.sun.jts.jta.TransactionManagerImpl.rollback(TransactionManagerImpl.java:372)
at com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate.rollbackDistributedTransaction(JavaEETransactionManagerJTSDelegate.java:218)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.rollback(JavaEETransactionManagerSimplified.java:862)
at com.sun.ejb.containers.EJBContainerTransactionManager.destroyBeanAndRollback(EJBContainerTransactionManager.java:574)
at com.sun.ejb.containers.EJBContainerTransactionManager.completeNewTx(EJBContainerTransactionManager.java:697)
at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:503)
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4456)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1991)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1961)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:212)
at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)
at $Proxy393.method6(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:143)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:173)
at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528)
at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1596)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1458)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:966)
at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:214)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:718)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:515)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.doWork(MessageMediatorImpl.java:2291)
at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)
at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)

#]

[#|2012-12-16T22:17:13.164+0000|SEVERE|44.0|javax.enterprise.system.core.transaction.com.sun.jts.CosTransactions|_ThreadID=443;_ThreadName=p: thread-pool-1; w: 8;_TimeMillis=1355696233164;_LevelValue=1000;|JTS5031: Exception [org.omg.CORBA.INTERNAL: vmcid: 0x0 minor code: 0 completed: Maybe] on Resource [rollback] operation.|#]

[#|2012-12-16T22:17:13.165+0000|WARNING|44.0|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=443;_ThreadName=p: thread-pool-1; w: 8;_TimeMillis=1355696233165;_LevelValue=900;_MessageID=ejb.system_exception;|EJB5184:A system exception occurred during an invocation on EJB CDIUseCasesCMBEAN1, method: public void com.sun.ts.tests.jms.ee20.cditests.usecases.CMBean1.method6()|#]

[#|2012-12-16T22:17:13.165+0000|WARNING|44.0|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=443;_ThreadName=p: thread-pool-1; w: 8;_TimeMillis=1355696233165;_LevelValue=900;|javax.ejb.EJBException: javax.transaction.SystemException: org.omg.CORBA.INTERNAL: JTS5031: Exception [org.omg.CORBA.INTERNAL: vmcid: 0x0 minor code: 0 completed: Maybe] on Resource [rollback] operation. vmcid: 0x0 minor code: 0 completed: No
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1998)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1961)
at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:212)
at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)
at $Proxy393.method6(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:143)
at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:173)
at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528)
at com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1596)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1458)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:966)
at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:214)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:718)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:515)
at com.sun.corba.ee.impl.protocol.MessageMediatorImpl.doWork(MessageMediatorImpl.java:2291)
at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)
at com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)
Caused by: javax.transaction.SystemException: org.omg.CORBA.INTERNAL: JTS5031: Exception [org.omg.CORBA.INTERNAL: vmcid: 0x0 minor code: 0 completed: Maybe] on Resource [rollback] operation. vmcid: 0x0 minor code: 0 completed: No
at com.sun.jts.jta.TransactionManagerImpl.rollback(TransactionManagerImpl.java:378)
at com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate.rollbackDistributedTransaction(JavaEETransactionManagerJTSDelegate.java:218)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.rollback(JavaEETransactionManagerSimplified.java:862)
at com.sun.ejb.containers.EJBContainerTransactionManager.destroyBeanAndRollback(EJBContainerTransactionManager.java:574)
at com.sun.ejb.containers.EJBContainerTransactionManager.completeNewTx(EJBContainerTransactionManager.java:697)
at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:503)
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4456)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1991)
... 21 more



 Comments   
Comment by David Zhao [ 02/Jul/13 ]

I cannot reproduce it at my local environment.

This transaction related issue might be fixed too by GLASSFISH-19872 and GLASSFISH-19769.

Please feel free to reopen it if you can still reproduce it with latest glassfish release.





[GLASSFISH-19458] The JMS RI throws wrong exception for ConnectionFactory.createConnection(String, String) Created: 17/Dec/12  Updated: 20/Dec/16  Resolved: 17/Dec/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Minor
Reporter: alanf760 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

N/A



 Description   

The following CTS JMS test fails because it throws the wrong exception.

The JMS RI throws a JMSException with a nested JMSSecurityException.
The test expects JMSSecurityException. Below is exception.

FAILED........com/sun/ts/tests/jms/core20/connectionfactorytests/Client.java#createConnectionExceptionTests

[javatest.batch] SEVERE: MQJMSRA_MC4001: constructor:Aborting:JMSException on createConnection=[C4060]: Login failed: user=invalid,
broker=localhost:7676(44081), error code: C4060
[javatest.batch] com.sun.messaging.jms.JMSSecurityException: [C4060]: Login failed: user=invalid, broker=localhost:7676(44081)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ProtocolHandler.authenticate(ProtocolHandler.java:1137)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ProtocolHandler.hello(ProtocolHandler.java:1044)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ProtocolHandler.hello(ProtocolHandler.java:935)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ConnectionImpl.hello(ConnectionImpl.java:588)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ConnectionImpl.openConnection(ConnectionImpl.java:2498)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ConnectionImpl.init(ConnectionImpl.java:1154)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ConnectionImpl.<init>(ConnectionImpl.java:466)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.UnifiedConnectionImpl.<init>(UnifiedConnectionImpl.java:66)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.XAConnectionImpl.<init>(XAConnectionImpl.java:64)
[javatest.batch] at com.sun.messaging.XAConnectionFactory.createXAConnection(XAConnectionFactory.java:100)
[javatest.batch] at com.sun.messaging.jms.ra.ManagedConnection.<init>(ManagedConnection.java:197)
[javatest.batch] at com.sun.messaging.jms.ra.ManagedConnectionFactory.createManagedConnection(ManagedConnectionFactory.java:2
26)
[javatest.batch] at com.sun.enterprise.resource.allocator.ConnectorAllocator.createResource(ConnectorAllocator.java:160)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.createSingleResource(ConnectionPool.java:907)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.createResource(ConnectionPool.java:1189)
[javatest.batch] at com.sun.enterprise.resource.pool.datastructure.RWLockDataStructure.addResource(RWLockDataStructure.java:9
8)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.addResource(ConnectionPool.java:282)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.createResourceAndAddToPool(ConnectionPool.java:1512)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.createResources(ConnectionPool.java:944)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.initPool(ConnectionPool.java:230)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.internalGetResource(ConnectionPool.java:511)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.getResource(ConnectionPool.java:381)
[javatest.batch] at com.sun.enterprise.resource.pool.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:245)
[javatest.batch] at com.sun.enterprise.resource.pool.PoolManagerImpl.getResource(PoolManagerImpl.java:170)
[javatest.batch] at com.sun.enterprise.connectors.ConnectionManagerImpl.getResource(ConnectionManagerImpl.java:337)
[javatest.batch] at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:306)
[javatest.batch] at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:207)
[javatest.batch] at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:170)
[javatest.batch] at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165)
[javatest.batch] at com.sun.messaging.jms.ra.ConnectionFactoryAdapter._allocateQueueConnection(ConnectionFactoryAdapter.java:
267)
[javatest.batch] at com.sun.messaging.jms.ra.ConnectionFactoryAdapter.createQueueConnection(ConnectionFactoryAdapter.java:254
)
[javatest.batch] at com.sun.ts.tests.jms.core20.connectionfactorytests.Client.createConnectionExceptionTests(Client.java:750)
[javatest.batch] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javatest.batch] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[javatest.batch] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javatest.batch] at java.lang.reflect.Method.invoke(Method.java:601)
[javatest.batch] at com.sun.ts.lib.harness.EETest.run(EETest.java:550)
[javatest.batch] at com.sun.ts.lib.harness.ServiceEETest.run(ServiceEETest.java:113)
[javatest.batch] at com.sun.ts.tests.common.vehicle.EmptyVehicleRunner.run(EmptyVehicleRunner.java:30)
[javatest.batch] at com.sun.ts.lib.harness.ServiceEETest.run(ServiceEETest.java:102)
[javatest.batch] at com.sun.ts.lib.harness.EETest.getPropsReady(EETest.java:446)
[javatest.batch] at com.sun.ts.lib.harness.ServiceEETest.run(ServiceEETest.java:210)
[javatest.batch] at com.sun.ts.lib.harness.EETest.run(EETest.java:257)
[javatest.batch] at com.sun.ts.tests.common.vehicle.VehicleClient.main(VehicleClient.java:27)
[javatest.batch] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javatest.batch] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[javatest.batch] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javatest.batch] at java.lang.reflect.Method.invoke(Method.java:601)
[javatest.batch] at org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:439)
[javatest.batch] at org.glassfish.appclient.client.AppClientFacade.launch(AppClientFacade.java:183)
[javatest.batch] at org.glassfish.appclient.client.AppClientGroupFacade.main(AppClientGroupFacade.java:65)
[javatest.batch] Dec 14, 2012 8:13:49 AM com.sun.enterprise.resource.allocator.ConnectorAllocator createResource
[javatest.batch] WARNING: RAR5038:Unexpected exception while creating resource for pool jms/QueueConnectionFactory-Connection-Pool.
Exception : javax.resource.spi.ResourceAdapterInternalException: MQJMSRA_MC4001: constructor:Aborting:JMSException on createConnecti
on=[C4060]: Login failed: user=invalid, broker=localhost:7676(44081), error code: C4060
[javatest.batch] Dec 14, 2012 8:13:49 AM com.sun.enterprise.connectors.ConnectionManagerImpl internalGetConnection
[javatest.batch] WARNING: RAR5117 : Failed to obtain/create connection from connection pool [ jms/QueueConnectionFactory-Connection-
Pool ]. Reason : com.sun.appserv.connectors.internal.api.PoolingException: MQJMSRA_MC4001: constructor:Aborting:JMSException on crea
teConnection=[C4060]: Login failed: user=invalid, broker=localhost:7676(44081), error code: C4060
[javatest.batch] 12-14-2012 08:13:49: ERROR: Expected JMSSecurityException, received com.sun.messaging.jms.JMSException: MQRA:CFA:a
llocation failure:createQueueConnection:Error in allocating a connection. Cause: MQJMSRA_MC4001: constructor:Aborting:JMSException o
n createConnection=[C4060]: Login failed: user=invalid, broker=localhost:7676(44081), error code: C4060
[javatest.batch] 12-14-2012 08:13:49: Setup JmsTool for TOPIC_FACTORY
[javatest.batch] 12-14-2012 08:13:49: TRACE: Getting initial context
[javatest.batch] 12-14-2012 08:13:49: TRACE: Getting TopicConnectionFactory java:comp/env/jms/MyTopicConnectionFactory
[javatest.batch] 12-14-2012 08:13:49: Test TopicConnectionFactory.createTopicConnection(String, String) with invalid credentials
[javatest.batch] 12-14-2012 08:13:49: Verify JMSSecurityException is thrown
[javatest.batch] Dec 14, 2012 8:13:49 AM com.sun.messaging.jms.ra.ManagedConnection <init>
[javatest.batch] SEVERE: MQJMSRA_MC4001: constructor:Aborting:JMSException on createConnection=[C4060]: Login failed: user=invalid,
broker=localhost:7676(44081), error code: C4060
[javatest.batch] com.sun.messaging.jms.JMSSecurityException: [C4060]: Login failed: user=invalid, broker=localhost:7676(44081)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ProtocolHandler.authenticate(ProtocolHandler.java:1137)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ProtocolHandler.hello(ProtocolHandler.java:1044)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ProtocolHandler.hello(ProtocolHandler.java:935)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ConnectionImpl.hello(ConnectionImpl.java:588)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ConnectionImpl.openConnection(ConnectionImpl.java:2498)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ConnectionImpl.init(ConnectionImpl.java:1154)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.ConnectionImpl.<init>(ConnectionImpl.java:466)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.UnifiedConnectionImpl.<init>(UnifiedConnectionImpl.java:66)
[javatest.batch] at com.sun.messaging.jmq.jmsclient.XAConnectionImpl.<init>(XAConnectionImpl.java:64)
[javatest.batch] at com.sun.messaging.XAConnectionFactory.createXAConnection(XAConnectionFactory.java:100)
[javatest.batch] at com.sun.messaging.jms.ra.ManagedConnection.<init>(ManagedConnection.java:197)
[javatest.batch] at com.sun.messaging.jms.ra.ManagedConnectionFactory.createManagedConnection(ManagedConnectionFactory.java:2
26)
[javatest.batch] at com.sun.enterprise.resource.allocator.ConnectorAllocator.createResource(ConnectorAllocator.java:160)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.createSingleResource(ConnectionPool.java:907)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.createResource(ConnectionPool.java:1189)
[javatest.batch] at com.sun.enterprise.resource.pool.datastructure.RWLockDataStructure.addResource(RWLockDataStructure.java:9
8)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.addResource(ConnectionPool.java:282)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.createResourceAndAddToPool(ConnectionPool.java:1512)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.createResources(ConnectionPool.java:944)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.initPool(ConnectionPool.java:230)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.internalGetResource(ConnectionPool.java:511)
[javatest.batch] at com.sun.enterprise.resource.pool.ConnectionPool.getResource(ConnectionPool.java:381)
[javatest.batch] at com.sun.enterprise.resource.pool.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:245)
[javatest.batch] at com.sun.enterprise.resource.pool.PoolManagerImpl.getResource(PoolManagerImpl.java:170)
[javatest.batch] at com.sun.enterprise.connectors.ConnectionManagerImpl.getResource(ConnectionManagerImpl.java:337)
[javatest.batch] at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:306)
[javatest.batch] at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:207)
[javatest.batch] at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:170)
[javatest.batch] at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165)
[javatest.batch] at com.sun.messaging.jms.ra.ConnectionFactoryAdapter._allocateTopicConnection(ConnectionFactoryAdapter.java:
325)
[javatest.batch] at com.sun.messaging.jms.ra.ConnectionFactoryAdapter.createTopicConnection(ConnectionFactoryAdapter.java:312
)
[javatest.batch] at com.sun.ts.tests.jms.core20.connectionfactorytests.Client.createConnectionExceptionTests(Client.java:770)
[javatest.batch] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javatest.batch] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[javatest.batch] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javatest.batch] at java.lang.reflect.Method.invoke(Method.java:601)
[javatest.batch] at com.sun.ts.lib.harness.EETest.run(EETest.java:550)
[javatest.batch] at com.sun.ts.lib.harness.ServiceEETest.run(ServiceEETest.java:113)
[javatest.batch] at com.sun.ts.tests.common.vehicle.EmptyVehicleRunner.run(EmptyVehicleRunner.java:30)
[javatest.batch] at com.sun.ts.lib.harness.ServiceEETest.run(ServiceEETest.java:102)
[javatest.batch] at com.sun.ts.lib.harness.EETest.getPropsReady(EETest.java:446)
[javatest.batch] at com.sun.ts.lib.harness.ServiceEETest.run(ServiceEETest.java:210)
[javatest.batch] at com.sun.ts.lib.harness.EETest.run(EETest.java:257)
[javatest.batch] at com.sun.ts.tests.common.vehicle.VehicleClient.main(VehicleClient.java:27)
[javatest.batch] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javatest.batch] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[javatest.batch] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javatest.batch] at java.lang.reflect.Method.invoke(Method.java:601)
[javatest.batch] at org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:439)
[javatest.batch] at org.glassfish.appclient.client.AppClientFacade.launch(AppClientFacade.java:183)
[javatest.batch] at org.glassfish.appclient.client.AppClientGroupFacade.main(AppClientGroupFacade.java:65)
[javatest.batch] Dec 14, 2012 8:13:49 AM com.sun.enterprise.resource.allocator.ConnectorAllocator createResource
[javatest.batch] WARNING: RAR5038:Unexpected exception while creating resource for pool jms/TopicConnectionFactory-Connection-Pool.
Exception : javax.resource.spi.ResourceAdapterInternalException: MQJMSRA_MC4001: constructor:Aborting:JMSException on createConnecti
on=[C4060]: Login failed: user=invalid, broker=localhost:7676(44081), error code: C4060
[javatest.batch] Dec 14, 2012 8:13:49 AM com.sun.enterprise.connectors.ConnectionManagerImpl internalGetConnection
[javatest.batch] WARNING: RAR5117 : Failed to obtain/create connection from connection pool [ jms/TopicConnectionFactory-Connection-
Pool ]. Reason : com.sun.appserv.connectors.internal.api.PoolingException: MQJMSRA_MC4001: constructor:Aborting:JMSException on crea
teConnection=[C4060]: Login failed: user=invalid, broker=localhost:7676(44081), error code: C4060
[javatest.batch] 12-14-2012 08:13:49: ERROR: Caught exception: com.sun.messaging.jms.JMSException: MQRA:CFA:allocation failure:crea
teTopicConnection:Error in allocating a connection. Cause: MQJMSRA_MC4001: constructor:Aborting:JMSException on createConnection=[C4
060]: Login failed: user=invalid, broker=localhost:7676(44081), error code: C4060
[javatest.batch] 12-14-2012 08:13:49: ERROR: createConnectionExceptionTests failed
[javatest.batch] 12-14-2012 08:13:49: ERROR: Test case throws exception: createConnectionExceptionTests failed
[javatest.batch] 12-14-2012 08:13:49: ERROR: Exception at:
[javatest.batch] 12-14-2012 08:13:49: ERROR: com.sun.ts.lib.harness.EETest$Fault: createConnectionExceptionTests failed
[javatest.batch] at com.sun.ts.tests.jms.core20.connectionfactorytests.Client.createConnectionExceptionTests(Client.java:782)
[javatest.batch] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javatest.batch] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[javatest.batch] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javatest.batch] at java.lang.reflect.Method.invoke(Method.java:601)
[javatest.batch] at com.sun.ts.lib.harness.EETest.run(EETest.java:550)
[javatest.batch] at com.sun.ts.lib.harness.ServiceEETest.run(ServiceEETest.java:113)
[javatest.batch] at com.sun.ts.tests.common.vehicle.EmptyVehicleRunner.run(EmptyVehicleRunner.java:30)
[javatest.batch] at com.sun.ts.lib.harness.ServiceEETest.run(ServiceEETest.java:102)
[javatest.batch] at com.sun.ts.lib.harness.EETest.getPropsReady(EETest.java:446)
[javatest.batch] at com.sun.ts.lib.harness.ServiceEETest.run(ServiceEETest.java:210)
[javatest.batch] at com.sun.ts.lib.harness.EETest.run(EETest.java:257)
[javatest.batch] at com.sun.ts.tests.common.vehicle.VehicleClient.main(VehicleClient.java:27)
[javatest.batch] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javatest.batch] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[javatest.batch] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javatest.batch] at java.lang.reflect.Method.invoke(Method.java:601)
[javatest.batch] at org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:439)
[javatest.batch] at org.glassfish.appclient.client.AppClientFacade.launch(AppClientFacade.java:183)
[javatest.batch] at org.glassfish.appclient.client.AppClientGroupFacade.main(AppClientGroupFacade.java:65)
[javatest.batch]
[javatest.batch] 12-14-2012 08:13:50: TRACE: SLEPT FOR: 1000
[javatest.batch] STATUS:Failed.Test case throws exception: createConnectionExceptionTests failed

The test throws a JMSException with a nested JMSSecurityException.
The test expects JMSSecurityException. Below is exception.
[javatest.batch] ********************************************************************************
[javatest.batch] Finished Test: FAILED........com/sun/ts/tests/jms/core20/connectionfactorytests/Client.java#createConnectionExcept






[GLASSFISH-19460] JMS RI fails to throw IllegalStateException/IllegalStateRuntimeException in message/completion listener Created: 17/Dec/12  Updated: 20/Dec/16  Resolved: 17/Dec/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: alanf760 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

N/A



 Description   

The following 3 CTS JMS tests fails because it throws the wrong exception.

FAILED........com/sun/ts/tests/jms/core20/appclient/listenerexceptiontests/Client.java#illegalStateExceptionTest1
FAILED........com/sun/ts/tests/jms/core20/appclient/listenerexceptiontests/Client.java#illegalStateExceptionTest4
FAILED........com/sun/ts/tests/jms/core20/appclient/listenerexceptiontests/Client.java#illegalStateRuntimeException

Calling Connection.close() in a CompletionListsner MUST throw an IllegalStateException. It doesn't.

Calling MessageConsumer.close() in a MessageListener MUST throw an IllegalStateException. It doesn't.

Calling JMSConsumer.close() in a MessageListener MUST throw an IllegalStateRuntimeException. It doesn't.






[GLASSFISH-19462] JMSConnectionFactoryDefinition fails to set client id (CTS tests fail as a result) Created: 17/Dec/12  Updated: 20/Dec/16  Resolved: 17/Dec/12

Status: Closed
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: alanf760 Assignee: David Zhao
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

N/A



 Description   

The following tests fail in CTS JMS. When creating a resource definition with client id set
the client id returned is null.

@JMSConnectionFactoryDefinition(
description="Define Durable TopicConnectionFactory AppClientMyTestDurableTopicConnectionFactory",
className="javax.jms.TopicConnectionFactory",
name="java:comp/env/jms/AppClientMyTestDurableTopicConnectionFactory",
resourceAdapterName = "@raname@",
user = "@user@",
password = "@password@",
clientId = "MyClientID",
properties =

{ "Property1=10", "Property2=20" }

,
transactional = false,
initialPoolSize = 0,
maxPoolSize = 30,
minPoolSize = 20,
maxIdleTime = 5
)

When looking up the ConnectionFactory above and creating a JMSContext, then calling JMSContext.getClientID(),
the client id returned is null.

FAILED........com/sun/ts/tests/jms/ee20/resourcedefs/descriptor/Client.java#checkClientIDTest_from_appclient
FAILED........com/sun/ts/tests/jms/ee20/resourcedefs/descriptor/Client.java#checkClientIDTest_from_ejb
FAILED........com/sun/ts/tests/jms/ee20/resourcedefs/descriptor/Client.java#checkClientIDTest_from_jsp
FAILED........com/sun/ts/tests/jms/ee20/resourcedefs/descriptor/Client.java#checkClientIDTest_from_servlet



 Comments   
Comment by Nigel Deakin [ 17/Dec/12 ]

Duplicate of GLASSFISH-19442





[GLASSFISH-19492] MDB @MessageDriven listens on Topic for @JMSDestinationDefinition className="javax.jms.Queue" Created: 03/Jan/13  Updated: 20/Dec/16  Resolved: 06/Jan/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Critical
Reporter: amyk Assignee: Simon Meng
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by MQ-264 Async receiver does not receive the m... Closed
Tags: jms-2-implementation

 Description   

Please see Arun's async receiver sample (which is currently commented as not working in the following blog link) and analysis in MQ-264
https://blogs.oracle.com/arungupta/entry/simple_jms_2_0_sample



 Comments   
Comment by Nigel Deakin [ 03/Jan/13 ]

I have tried this in the debugger and agree that this appears to be the problem.

If you define a MDB which uses mappedName to refer to a queue resource created in the normal way (e.g. using glassfish-resources.xml) then ActivationSpec.setDestinationType() is called with a value of "javax.jms.Queue".

However if you define a MDB which uses mappedName to refer to a queue resource created using a @JMSDestinationDefinition annotation then ActivationSpec.setDestinationType() is NOT called. As a result the MDB creates a consumer on a topic (but the correct physical name).

So this seems to be an issue specifically with resources created using a @JMSDestinationDefinition annotation.

There is a workaround, which is to explicitly specify the destinationType activation property. Note that setting this property should not be necessary.

@MessageDriven(mappedName = "java:global/jms/myQueue", activationConfig =
 {@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")})
Comment by arungupta [ 03/Jan/13 ]

Tried the workaround in my simple sample and it worked.

Comment by Simon Meng [ 05/Jan/13 ]

Assume we create a jms destination resource via the following command:
asadmin create-jms-resource --restype javax.jms.Queue --property Name=myQueue jms/myQueue
The resource should be created successfully. It appears in domain.xml

In an application (a MDB), it also defines a jms destination by annotation

@JMSDestinationDefinition(name = "jms/myQueue",
resourceAdapterName = "jmsra",
className = "javax.jms.Queue",
destinationName="myQueue9",
description="My Queue9")

@MessageDriven(mappedName = "jms/myQueue")
public class MessageReceiverAsync implements MessageListener

{ .... }

When deploy a MDB, we need use the mappedName to find jms destination resource in domain.xml or EJbMessageBeanDescriptor. I need know the clear answer for the following questions:

1. If the mappedName does not start with "java:" prefix, whether need add "java:comp/env" prefix to match the resources.
2. If two jms destination resources have the same name (name does not start with "java:" prefix), the two resources are defined in both domain.xml and application, which resource should be used.

Comment by Simon Meng [ 06/Jan/13 ]

Fixed at revision 57990.





[GLASSFISH-19004] Implement injection of JMSContext objects (Phase 2) Created: 15/Aug/12  Updated: 20/Dec/16  Resolved: 13/Dec/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0
Fix Version/s: 4.0_dev

Type: New Feature Priority: Major
Reporter: Nigel Deakin Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Dependency
depends on GLASSFISH-19016 Implement support for transaction scope Resolved
depends on MQ-177 Implement injection of JMSContext obj... Closed
Tags: jms-2-implementation

 Description   

Implement the injection of JMS Context objects, as specified in JMS_SPEC-70.

Phase 1 of this work was covered by MQ-177

Phase 2 of this work involves the implementation of the scope combined transaction/request scope expected to be defined in the JMS 2.0 Public Draft.



 Comments   
Comment by Nigel Deakin [ 15/Aug/12 ]

Added dependency on MQ-177, which is the first phase of this work.

Comment by David Zhao [ 01/Nov/12 ]

This feature is expected to be ready in GlassFish Milestone 3 (Dec. 17) if the dependency 19016 can be finished by Milestone 2 (Nov. 19) on time.

Comment by David Zhao [ 13/Dec/12 ]

Revision: 57494





[GLASSFISH-19474] Some jms cluster tests failed against b68 build Created: 20/Dec/12  Updated: 20/Dec/16  Resolved: 27/Dec/12

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 4.0_dev
Fix Version/s: 4.0_dev

Type: Bug Priority: Major
Reporter: sonialiu Assignee: David Zhao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

oel 6



 Description   

Build: promoted build 68 and b69 nightly
There are 5 test cases failed in the masterbroker test suit
appserver-sqe/pe/jms/jmscluster/test1, test2, test3, test4, test5

Steps to reproduce the bug:
1. Install GF4.0, start domain
2. Checkout SQE workspace cvs co appserver-sqe/bootstrap.xml
(CVSROOT: :pserver:<your cvs user name>@sunsw.us.oracle.com:/m/jws
cd appserver-sqe
ant -f bootstrap.xml co-jms
3.set env. variables
S1AS_HOME <GF install dir>, for example: /export/sonia/v4/glassfish3/glassfish
SPS_HOME <appserver-sqe>, for example: /export/sonia/appserver-sqe
ANT_HOME <ant location>, for example: /export/sonia/ant-1.7.1
JAVA_HOME <java location>, for example: /export/sonia/jdk1.7.0
4. cd /export/sonia/appserver-sqe, run
ant startDerby
5. cd /export/sonia/appserver-sqe/pe/jms/jmscluster/test1, run
ant print build setup deploy

  • The deploy seems failed
    jms-deploy:
    [exec] asadmin --host localhost --port 4848 --user admin --passwordfile /export/sonia/appserver-sqe/build-config/adminpassword.txt --interactive=false --echo=true --terse=false deploy --force=false --precompilejsp=false --verify=false --retrieve /export/sonia/appserver-sqe/build/pe/i386_bigapp-opteron-12_Linux/jms/archive --generatermistubs=false --availabilityenabled=false --asyncreplication=true --target gfjmscluster1 --keepreposdir=false --keepfailedstubs=false --isredeploy=false --logreportederrors=true --_classicstyle=false /export/sonia/appserver-sqe/build/pe/i386_bigapp-opteron-12_Linux/jms/archive/jmsclusterApp.ear
    [exec] Application deployed with name jmsclusterApp.
    [exec] WARNING: Command _deploy did not complete successfully on server instance gfjmsinstance1: remote failure: Failed to load the application on instance gfjmsinstance1. The application will not run properly. Please fix your application and redeploy.
    [exec] Exception while loading the app : EJB Container initialization error. Please see server.log for more details.
    [exec] WARNING: Command _deploy did not complete successfully on server instance gfjmsinstance2: remote failure: Failed to load the application on instance gfjmsinstance2. The application will not run properly. Please fix your application and redeploy.
    [exec] Exception while loading the app : EJB Container initialization error. Please see server.log for more details.
    [exec] WARNING: Command _deploy did not complete successfully on server instance gfjmsinstance3: remote failure: Failed to load the application on instance gfjmsinstance3. The application will not run properly. Please fix your application and redeploy.
    [exec] Exception while loading the app : EJB Container initialization error. Please see server.log for more details.
    [exec] Command deploy completed with warnings.
    6. In instance1 server log, I saw the following exception:
    [#|2012-12-20T13:01:45.429-0800|WARNING|44.0|javax.enterprise.resource.resourceadapter.com.sun.enterprise.connectors.inbound|_ThreadID=73;_ThreadName=admin-listener(1);_TimeMillis=1356037305429;_LevelValue=900;_MessageID=endpoint.activation.failure;|RAR8501: Exception during endpoint activation for ra [ jmsra ], activationSpecClass [ com.sun.messaging.jms.ra.ActivationSpec ] : javax.resource.NotSupportedException: MQRA:EC:Error:Clustered Message Consumer requires non-null clientID OR mdbName:clientID=null:mdbName=null
    javax.resource.NotSupportedException: MQRA:EC:Error:Clustered Message Consumer requires non-null clientID OR mdbName:clientID=null:mdbName=null
    at com.sun.messaging.jms.ra.EndpointConsumer._init(EndpointConsumer.java:290)
    at com.sun.messaging.jms.ra.EndpointConsumer.<init>(EndpointConsumer.java:187)
    at com.sun.messaging.jms.ra.ResourceAdapter.endpointActivation(ResourceAdapter.java:458)
    at com.sun.enterprise.connectors.inbound.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:226)
    at org.glassfish.ejb.mdb.MessageBeanContainer.<init>(MessageBeanContainer.java:225)
    at org.glassfish.ejb.mdb.MessageBeanContainerFactory.createContainer(MessageBeanContainerFactory.java:61)
    at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:221)
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:291)
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:99)
    at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:190)
    at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:259)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
    at org.glassfish.deployment.admin.InstanceDeployCommand.execute(InstanceDeployCommand.java:213)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:561)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:557)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:356)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:556)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:580)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1455)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1400(CommandRunnerImpl.java:108)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1783)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1713)
    at org.glassfish.admin.rest.resources.admin.CommandResource.executeCommand(CommandResource.java:392)
    at org.glassfish.admin.rest.resources.admin.CommandResource.execCommandMultInMultOut(CommandResource.java:253)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:108)
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:147)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:81)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:359)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:354)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:100)
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:204)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:316)
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:180)
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:782)
    at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:306)
    at org.glassfish.admin.rest.adapter.RestAdapter$2.service(RestAdapter.java:320)
    at org.glassfish.admin.rest.adapter.RestAdapter.service(RestAdapter.java:184)
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispatch(HK2Dispatcher.java:113)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:236)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:164)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:175)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:265)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:134)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.portunif.PUFilter.handleRead(PUFilter.java:217)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:265)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:134)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glass