[CDO] Factory not found: org.eclipse.connectors[mongodb] [message #1072404] |
Mon, 22 July 2013 13:26  |
Eclipse User |
|
|
|
After successfully running the tutorial for the default h2 database for cdo, using:
http://wiki.eclipse.org/Getting_started_with_CDO_Helios
I attempted to run it using mongodb by referencing:
http://wiki.eclipse.org/CDO/MongoDB_Store
I thus changed the config file as mentioned, started by mongodb server and tried to create a new session (from the "CDO Sessions" eclipse view) using the following parameters:
server description: mongodb://localhost
repository name: repo1
on attempting this I get the following error pop up:
Unable to open a session on the specified repository
Factory not found: org.eclipse.connectors[mongodb]
which is from the following exception:
[ERROR] Factory not found: org.eclipse.net4j.connectors[mongodb]
org.eclipse.net4j.util.container.FactoryNotFoundException: Factory not found: org.eclipse.net4j.connectors[mongodb]
at org.eclipse.net4j.util.container.ManagedContainer.getFactory(ManagedContainer.java:200)
at org.eclipse.net4j.util.container.ManagedContainer.createElement(ManagedContainer.java:534)
at org.eclipse.net4j.util.container.ManagedContainer.getElement(ManagedContainer.java:292)
at org.eclipse.net4j.util.container.ManagedContainer.getElement(ManagedContainer.java:273)
at org.eclipse.net4j.Net4jUtil.getConnector(Net4jUtil.java:79)
at org.eclipse.net4j.Net4jUtil.getConnector(Net4jUtil.java:96)
at org.eclipse.emf.cdo.internal.net4j.Net4jConnectorInjector.getConnector(Net4jConnectorInjector.java:81)
at org.eclipse.emf.cdo.internal.net4j.Net4jConnectorInjector.process(Net4jConnectorInjector.java:44)
at org.eclipse.net4j.util.container.ManagedContainer.postProcessElement(ManagedContainer.java:542)
at org.eclipse.net4j.util.container.ManagedContainer.getElement(ManagedContainer.java:293)
at org.eclipse.net4j.util.container.ManagedContainer.getElement(ManagedContainer.java:273)
at org.eclipse.emf.cdo.internal.ui.actions.OpenSessionAction.doRun(OpenSessionAction.java:74)
at org.eclipse.net4j.util.ui.actions.LongRunningAction$1.run(LongRunningAction.java:185)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
------------------------------------
I also attempted to run it using:
server description: tcp://localhost
repository name: repo1
in case it is the appropriate uri, and in this case I get
[ERROR] org.eclipse.net4j.util.concurrent.TimeoutRuntimeException: Channel registration timeout after 10000 milliseconds
due to the fact that the mongo server reports:
[conn8] recv(): message len 150994944 is too large150994944
which I am assuming is due to a malformed message being sent as the inappropriate uri is used (I am just including this in case this is the problem and not the factory not found exception above).
This use case is running the Indigo eclipse distribution with the suggested 4.0-SR3 (R20120518-0411) CDO distribution and EMF 2.7 with mongodb 2.0.1.
Please let me know if you need any more information off me.
Thank you in advance for any help provided,
Cheers,
Kostas
|
|
|
Re: [CDO] Factory not found: org.eclipse.connectors[mongodb] [message #1072611 is a reply to message #1072404] |
Tue, 23 July 2013 02:26   |
Eclipse User |
|
|
|
Am 23.07.2013 01:47, schrieb Konstantinos Barmpis:
> After successfully running the tutorial for the default h2 database for cdo, using:
> http://wiki.eclipse.org/Getting_started_with_CDO_Helios
> I attempted to run it using mongodb by referencing:
> http://wiki.eclipse.org/CDO/MongoDB_Store
>
> I thus changed the config file as mentioned, started by mongodb server and tried to create a new session (from the
> "CDO Sessions" eclipse view) using the following parameters:
>
> server description: mongodb://localhost
> repository name: repo1
The client is (mostly) not affected by a store change on the server. The connection values stay the same:
server description: tcp://localhost
repository name: repo1
>
> on attempting this I get the following error pop up:
>
> Unable to open a session on the specified repository
> Factory not found: org.eclipse.connectors[mongodb]
That's because you've replaced tcp transport with mongodb *transport*, which doesn't exist.
>
> which is from the following exception:
>
> [ERROR] Factory not found: org.eclipse.net4j.connectors[mongodb]
> org.eclipse.net4j.util.container.FactoryNotFoundException: Factory not found: org.eclipse.net4j.connectors[mongodb]
> at org.eclipse.net4j.util.container.ManagedContainer.getFactory(ManagedContainer.java:200)
> at org.eclipse.net4j.util.container.ManagedContainer.createElement(ManagedContainer.java:534)
> at org.eclipse.net4j.util.container.ManagedContainer.getElement(ManagedContainer.java:292)
> at org.eclipse.net4j.util.container.ManagedContainer.getElement(ManagedContainer.java:273)
> at org.eclipse.net4j.Net4jUtil.getConnector(Net4jUtil.java:79)
> at org.eclipse.net4j.Net4jUtil.getConnector(Net4jUtil.java:96)
> at org.eclipse.emf.cdo.internal.net4j.Net4jConnectorInjector.getConnector(Net4jConnectorInjector.java:81)
> at org.eclipse.emf.cdo.internal.net4j.Net4jConnectorInjector.process(Net4jConnectorInjector.java:44)
> at org.eclipse.net4j.util.container.ManagedContainer.postProcessElement(ManagedContainer.java:542)
> at org.eclipse.net4j.util.container.ManagedContainer.getElement(ManagedContainer.java:293)
> at org.eclipse.net4j.util.container.ManagedContainer.getElement(ManagedContainer.java:273)
> at org.eclipse.emf.cdo.internal.ui.actions.OpenSessionAction.doRun(OpenSessionAction.java:74)
> at org.eclipse.net4j.util.ui.actions.LongRunningAction$1.run(LongRunningAction.java:185)
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
>
> ------------------------------------
>
> I also attempted to run it using:
>
> server description: tcp://localhost
> repository name: repo1
>
> in case it is the appropriate uri, and in this case I get
> [ERROR] org.eclipse.net4j.util.concurrent.TimeoutRuntimeException: Channel registration timeout after 10000 milliseconds
>
> due to the fact that the mongo server reports:
>
> [conn8] recv(): message len 150994944 is too large150994944
>
> which I am assuming is due to a malformed message being sent as the inappropriate uri is used
No, I think this is a limitation of our MongoDB integration. Well, really it's a limitation of MongoDB itself, because
single documents can't exceed a certain size. Each CDO commit is stored in a single document because that's the only way
to achieve ACID properties with MongoDB. Please try to keep your commits smaller.
BTW. the MongoDBStore is looking for a new maintainer. Are you interested?
Cheers
/Eike
----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
> (I am just including this in case this is the problem and not the factory not found exception above).
>
> This use case is running the Indigo eclipse distribution with the suggested 4.0-SR3 (R20120518-0411) CDO distribution
> and EMF 2.7 with mongodb 2.0.1.
>
> Please let me know if you need any more information off me.
>
> Thank you in advance for any help provided,
>
> Cheers,
>
> Kostas
>
|
|
|
Re: [CDO] Factory not found: org.eclipse.connectors[mongodb] [message #1072933 is a reply to message #1072611] |
Tue, 23 July 2013 15:56  |
Eclipse User |
|
|
|
I thank you for your prompt response to my thread.
Unfortunately I have not been able to resolve the issue as I am not trying to actually physically commit any specific model data to the server I am just using the UI to attempt to connect to the server through a new Session.
I also attempted to use Java code to achieve this but I seem to be having issues with net4j connecting to the store.
When I get something concrete to ask, or discover a solution to my issue I will update this post accordingly.
Regarding your final suggestion, my knowledge of CDO/MongoDB is too limited to commit to this at this time, but I would be happy to keep it in mind as a future opportunity.
[Updated on: Tue, 23 July 2013 15:57] by Moderator
|
|
|
Powered by
FUDForum. Page generated in 0.18632 seconds