ObjectDB ObjectDB

Activation Issue



We bought a site license the yesterday. I ran the activation class this morning. That generated the activation key. I took that key as per the instructions, added it to the objectdb.conf inside the jar, and everything was happy. (this was with 2.3.7). However after a reboot I'm now getting the evaluation license restriction message again at compile time (which was I was seeing before putting the activation key in objectdb.conf). I tried upgrading to 2.3.7_02 and updating objectdb.conf with the activation key, but get the same behaviour.

It showed up straight after reboot when I restarted the objectdb server, and then started tomcat, with tomcat throwing the eval license exception. Nothing had been changed or redeployed, only a reboot.

What have I done wrong?



Piece of objectdb.conf:

  <size initial="256kb" resize="256kb" page="2kb" />
  <recovery enabled="true" sync="false" path="." max="128mb" />
  <recording enabled="false" sync="false" path="." mode="write" />
  <locking version-check="true" />
  <processing cache="64mb" max-threads="10" />
  <query-cache results="32mb" programs="500" />
  <extensions drop="temp,tmp" />
  <activation code="XXXX-xxxx-XXXX-xxxx-XXXX" />


[ObjectDB 2.3.7_02] javax.persistence.PersistenceException

Too many persistable types (>10) - exceeds evaluation limit (error 1011)
at com.objectdb.jpa.EMImpl.find(EMImpl.java:556)
at com.objectdb.jpa.EMImpl.find(EMImpl.java:474)
at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240)
at $Proxy37.find(Unknown Source)
at com.googlecode.genericdao.dao.jpa.JPABaseDAO._persistOrMerge(JPABaseDAO.java:263)
at com.googlecode.genericdao.dao.jpa.GenericDAOImpl.save(GenericDAOImpl.java:113)
at com.contextspace.dao.impl.BaseDAOImpl.create(BaseDAOImpl.java:93)
at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy44.create(Unknown Source)
at com.contextspace.dao.attribute.impl.objectdb.AttributeNameDAOImplTest.findByOrganisationTest(AttributeNameDAOImplTest.java:29)
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 org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
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 org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:334)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:980)
Caused by: com.objectdb.o.UserException: Too many persistable types (>10) - exceeds evaluation limit
at com.objectdb.o.MSG.d(MSG.java:61)
... 53 more

Please verify that your objectdb.conf file is used by the server. The activation setting is required on the server side so if you are using client-server and you added it to the client side (the web application) it will not work. You have to run the server using the revised jar that contains the revised configuration.

To verify that the configuration is really used by the server - add a deliberate error (e.g. <no-such-element> at the beginning of the file) and try restarting the server. If the server starts with no errors - your configuration file is not used and probably misplaced.

ObjectDB Support

hmmm, something weird. I'm at home again, and everything works fine. When I said reboot, it was shutdown the laptop, and move to the office. The activation code isn't tied to IP addresses in any way is it? (This testing is on my dev laptop, we also have a server farm where we will be running objectdb for production).

Also, as far as seeing the eval exceeded exception, the simple test was doing a compile. The unit test only has the jar file, and creates an embedded database. The jarfile most definitely had the activation code in objectdb.conf. Yet I was seeing that exception, no objectdb server involved to complicate things.





Actually the activation code is per machine. Use your site license to generate multiple activation codes. You may also specify multiple activation codes in the configuration file (in order to share the same objectdb.conf file on different machines).

ObjectDB Support

ok, one more question. The only difference between home and the office is, at home I'm on a wired connection, at the office I'm on wireless. Are you prehaps using the MAC address of the network interface as part of the activation key? If so that would account for why it works at home but not at the office.

I have generated another key for this machine and put both in the config. Hopefully now it will work regardless of where I am.


When I read your clarification at #3 I first thought that you were using a different machine in the office but now I realize that actually it is the same laptop.

It is weird but it may be explained by a different active MAC address.

Thank you for the update.

ObjectDB Support

I've had problems with activation too recently, and 2 separate machines.

ie: code that was working fine, suddenly complained about the 10 class restriction.

In one case it happened after Linode did 'scheduled' maintenance, so my assumption was that there was a machine migration (and hence different MAC).

However, in the other case, it happened on my standard development machine.
No changes at all to the machine or OS.



I can see your new activation for "Davids-MacBook-Pro.local", Mac OS X 10.7.4.

But I cannot see any former activation for that machine.

There was an activation for "David-Moshals-MacBook-Pro.local", Mac OS X 10.6.7.

Is that the same machine? The MAC address is also different.

ObjectDB Support

Yes, those 2 are the same machines - though different hard drives, and

operating systes: Snow Leopard = 10.6, Lion = 10.7

That machine has used objectdb continuously since around October 2010.

Problem resolved as soon as I activated.

Only other thing I did with the machine recently was to install a couple of VirtualBox VMs (Windows 8 and Ubuntu 12.04), however, objectdb was never installed on those vms.

It can't be possible for Virtual box to change the host MAC address can it?

Separately: did you find my registration for my linux server which also complained about restrictions?

BTW: this happened with objectdb 2.3.7_09

I'm upgrading to 2.4.0_04 today fyi.

(see my comment in separate thread re: jar labeling).




Upgraded to 2.4.0_04:

com.objectdb.o.UserException: Too many persistable types (>10) - exceeds evaluation limit
at com.objectdb.o.MSG.d(MSG.java:61)
at com.objectdb.o.MST.UB(MST.java:1089)
at com.objectdb.o.WRA.UB(WRA.java:199)

This is not good!



Verify that after the upgrade you are still using a configuration file with the activation code.

Nothing has changed from build 2.3.7_09 to 2.4.0_04 regarding activation.

ObjectDB Support


To post on this website please sign in.