[Design of POJO Server] - vfs* based URLs
by bill.burke@jboss.com
About a month ago I did a prototype on my laptop of changing VirtualFile.toURL() to return a VFS based URL. I got it up in working, but ran into a lot of problems when using VFS based URLs with a URLClassLoader.
The way I had it working was that a URL Handler returned a VirtualFileURLConnection object. This class delegated to a VirtualFile to openStreams and such. VirtualFile.toURL() would return a "vfs" base URL. While VirtualFileHandlers remained untouched and returned their real underlying URL.
For Jars I ran into a lot of Streaming problems where there would be pre-mature end-of-file errors when loading classes. This was solved by creating ByteArrayInputStreams around any loading of jar entries. I also found that the URL Classloader implementation worked differently depending on whether the URL ended in "/" or not.
What scared me the most about this process was that I had to hack Sun specific by decompiling it to understand what the problems were as most of the behaviors I had to debug were not documented.
I'm doing a second iteration of this code right now. One thing I'm going to try to do is to not return a VirtualFileURLConnection from the VFS protocol Handler, but instead return VirtualFileHandler.toURL().openConnection(). I think this may solve a lot of the problems that were encountered initially.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3990063#3990063
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3990063
17 years, 11 months
[Design of the JBoss EJB Container] - ejb3-timer using PostgreSQL in JBoss
by thejavafreak
Dear all,
I've changed the database for quartz service to Postgre. But this message came out after I start my JBoss 5 Beta1 for the second time and onwards. I have changed the query in ejb3-timer-service.xml so it is suitable to Postgres. I have also changed the CREATE_DB_ON_STARTUP flag to false and true but it still didn't work.
Is this a bug or something that can be fixed?
2006-11-30 18:14:37,812 30604 WARN [org.jboss.ejb3.timerservice.quartz.QuartzTimerServiceFactory] (main:) sql failed: CREATE TABLE qrtz_job_details(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, DESCRIPTION VARCHAR(120) NULL, JOB_CLASS_NAME VARCHAR(128) NOT NULL, IS_DURABLE BOOLEAN NOT NULL, IS_VOLATILE BOOLEAN NOT NULL, IS_STATEFUL BOOLEAN NOT NULL, REQUESTS_RECOVERY BOOLEAN NOT NULL, JOB_DATA BYTEA NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP))
| 2006-11-30 18:14:37,812 30604 DEBUG [org.jboss.ejb3.timerservice.quartz.QuartzTimerServiceFactory] (main:) sql failed: CREATE TABLE qrtz_job_details(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, DESCRIPTION VARCHAR(120) NULL, JOB_CLASS_NAME VARCHAR(128) NOT NULL, IS_DURABLE BOOLEAN NOT NULL, IS_VOLATILE BOOLEAN NOT NULL, IS_STATEFUL BOOLEAN NOT NULL, REQUESTS_RECOVERY BOOLEAN NOT NULL, JOB_DATA BYTEA NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP))
| org.postgresql.util.PSQLException: ERROR: relation "qrtz_job_details" already exists
| at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1527)
| at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1311)
| at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:190)
| at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
| at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:354)
| at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:347)
| at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.execute(WrappedPreparedStatement.java:209)
| at org.jboss.ejb3.timerservice.quartz.QuartzTimerServiceFactory.execute(QuartzTimerServiceFactory.java:172)
| at org.jboss.ejb3.timerservice.quartz.QuartzTimerServiceFactory.createSchema(QuartzTimerServiceFactory.java:88)
| at org.jboss.ejb3.timerservice.quartz.QuartzTimerServiceFactory.start(QuartzTimerServiceFactory.java:249)
| at org.jboss.ejb3.timerservice.quartz.jmx.EJB3TimerService.startService(EJB3TimerService.java:105)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
| at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
| at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:589)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
| at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:167)
| at $Proxy0.start(Unknown Source)
| at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
| at org.jboss.system.microcontainer.ServiceControllerContextAction.install(ServiceControllerContextAction.java:46)
| at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
| at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:226)
| at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:198)
| at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:709)
| at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:429)
| at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:538)
| at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:472)
| at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:320)
| at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:190)
| at org.jboss.system.ServiceController.doChange(ServiceController.java:656)
| at org.jboss.system.ServiceController.start(ServiceController.java:431)
| at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:124)
| at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:85)
| at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:44)
| at org.jboss.deployers.plugins.deployers.helpers.AbstractSimpleRealDeployer.deploy(AbstractSimpleRealDeployer.java:53)
| at org.jboss.deployers.plugins.deployer.AbstractSimpleDeployer.commitDeploy(AbstractSimpleDeployer.java:52)
| at org.jboss.deployers.plugins.deployer.DeployerWrapper.commitDeploy(DeployerWrapper.java:145)
| at org.jboss.deployers.plugins.deployment.MainDeployerImpl.commitDeploy(MainDeployerImpl.java:440)
| at org.jboss.deployers.plugins.deployment.MainDeployerImpl.commitDeploy(MainDeployerImpl.java:451)
| at org.jboss.deployers.plugins.deployment.MainDeployerImpl.process(MainDeployerImpl.java:381)
| at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:366)
| at org.jboss.system.server.profileservice.ProfileServiceBootstrap.bootstrap(ProfileServiceBootstrap.java:246)
| at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:89)
| at org.jboss.system.server.profileservice.ServerImpl.doStart(ServerImpl.java:401)
| at org.jboss.system.server.profileservice.ServerImpl.start(ServerImpl.java:340)
| at org.jboss.Main.boot(Main.java:210)
| at org.jboss.Main$1.run(Main.java:508)
| at java.lang.Thread.run(Thread.java:619)
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3989994#3989994
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3989994
17 years, 11 months