Upgrade from dataverse 4.20 to dataverse 5.0 ejb-timer-service error

174 views
Skip to first unread message

olimi...@gmail.com

unread,
Dec 14, 2020, 12:47:10 PM12/14/20
to Dataverse Users Community
Hi every one,
We are start upgrading our multi-server dataverse cluster from version 4.20 to 5.0.
As recommend in the dataverse user guide, we want have one server that acts as dedicated timer server. In the other servers, after deploying the dataverse 5.0 war, when we trying to change the <ejb-timer-service timer-datasource="jdbc/VDCNetDS">  to <ejb-timer-service>, we got the error "EJB Timer Service is not available".
When a server has the jvm-option ejb_timer
In the logs, we see "Caused by: javax.resource.spi.ResourceAllocationException: Error in allocating a connection. Cause: Class name is wrong or classpath is not set for : org.apache.derby.jdbc.EmbeddedXADataSource", 

it's as if when starting the application, it tries to use an  embedded database in payara  whereas we have a physical relational database. So we want to know if dataverse 5.0 need an embedded database for timer in multi server cluster mode? 
Also, we saw that derby have been replace by H2 in Payara, so when migrating from glassfish to payara, do you need to make some changes in domain.xml for that?

Join to this post the payara server logs.

Any help is welcome

Best regards,

Michel

   

olimi...@gmail.com

unread,
Dec 14, 2020, 12:55:08 PM12/14/20
to Dataverse Users Community
I forgot the logs in my previous post. 

Best regards,

Michel
upgradeErroors.log

Durand, Gustavo

unread,
Dec 14, 2020, 1:51:12 PM12/14/20
to dataverse...@googlegroups.com
Hi Michel.

Sorry to hear you ran into this issue. I recently ran into it as well, upgrading my dev environment to 5.3, where we made similar changes to the main timer server as well (we hadn't previously seen it because it doesn't affect single server environments, until now, and at Harvard we had left the ejb-timer-pool setting untouched.

So, what you found is true, Payara uses a different class for their connection pool than what used in Glassfish 4. So if you are upgrading from a GF4 installation to a P5 installation, you may need to change this (and will once you get to 5.3).

The way I did it was to replace the following from the GF4 version of domain.xml:
   <jdbc-connection-pool datasource-classname="org.apache.derby.jdbc.EmbeddedXADataSource" name="__TimerPool" res-type="javax.sql.XADataSource">
<property name="databaseName" value="${com.sun.aas.instanceRoot}/lib/databases/ejbtimer"></property>
<property name="connectionAttributes" value=";create=true"></property>
</jdbc-connection-pool>

with (that I copied from the P5 version of domain.xml:
    <jdbc-connection-pool datasource-classname="org.h2.jdbcx.JdbcDataSource" name="__TimerPool" res-type="javax.sql.XADataSource">
<property name="URL" value="jdbc:h2:${com.sun.aas.instanceRoot}/lib/databases/ejbtimer;AUTO_SERVER=TRUE"></property>
</jdbc-connection-pool>

And then clear out the generated folder and redeploy.

Let me / us know if that work for you,
Gustavo



On Mon, Dec 14, 2020 at 12:55 PM olimi...@gmail.com <olimi...@gmail.com> wrote:
I forgot the logs in my previous post. 

Best regards,

Michel
Le lundi 14 décembre 2020 à 18:47:10 UTC+1, olimi...@gmail.com a écrit :

--
You received this message because you are subscribed to the Google Groups "Dataverse Users Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dataverse-commu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dataverse-community/c372e04e-684b-4954-8571-83fdf33c3574n%40googlegroups.com.

olimi...@gmail.com

unread,
Dec 15, 2020, 10:00:37 AM12/15/20
to Dataverse Users Community
Hi Gustavo,

Thanks for the answer.
Your suggestions works fine for me. I think, it will be a good thing to add to the dataverse 5.0 upgrading steps.
I would like to do it by myself but I don't have the right to edit the release notes.

Best regards,

Michel

Philip Durbin

unread,
Dec 15, 2020, 11:01:25 AM12/15/20
to dataverse...@googlegroups.com
Hi Michel,

You're right, you can't edit the release notes but you can do the next best thing, which is to make a pull request against this file (the version we iterate on before a release): https://github.com/IQSS/dataverse/blob/develop/doc/release-notes/5.0-release-notes.md

Then, once your changes are merged, we can copy them into the official release notes.

Thanks for offering to make improvements!

Phil



--
Reply all
Reply to author
Forward
0 new messages