Am 17.02.2012, 13:19 Uhr, schrieb Emmanuel Lécharny <[email protected]>:

Le 2/17/12 1:09 PM, Vitali Baumtrok a écrit :
Hello guys,

Hi,

I'm having some trouble with executing a stored procedure.

System:
WindowsXP
ApacheDS 2.0.0-M5
Apache LDAP API 1.0.0-M10
jdk 7

Thanks for the infos.

So, yes, there is an issue as we are trying to get OSGi being used in this milestone, and the extendedOperation are loaded using a property in 2.0.0-M5.

You will have to start the server adding a -Ddefault.extendedOperation.requests=<the list of ExtendedRequest classes> and -Ddefault.extendedOperation.responses=<the list of ExtendedResponse classes>

In your case, StoredProcedureRequest and StoredProcedureResponse.

Test that, and please fill a JIRA to be sure we fix this issue.

Note that this feature is currently highly experimental, and that we are working on Milestones, so it's likely to be a moving target for quite a while.

It worked probably better in some previous 2.0 milestones.


This has no effect (with all milestones).

Here what I typed in to stop service:
wrapper -p ../conf/wrapper.conf set.INSTANCE_DIRECTORY=../instances/default set.INSTANCE=default

to start service:
wrapper -t ../conf/wrapper.conf set.INSTANCE_DIRECTORY=../instances/default set.INSTANCE=default -Ddefault.extendedOperation.requests=StoredProcedureRequest -Ddefault.extendedOperation.responses=StoredProcedureResponse

also tried with some other values like:
org.apache.directory.shared.ldap.extras.extended.StoredProcedureRequest and org.apache.directory.shared.ldap.extras.extended.StoredProcedureResponse

also tried to add it to the wrapper.conf, because it has this parameters, too. ApacheDS couldn't start, the apacheds.log said: [12:15:46] ERROR [org.apache.directory.shared.ldap.codec.api.LdapApiServiceFactory] - Failed to instantiate a viable instance, instantiating new instance of java.lang.NoSuchMethodException: org.apache.directory.shared.ldap.extras.extended.StoredProcedureRequest.<init>(org.apache.directory.shared.ldap.codec.api.LdapApiService)
    at java.lang.Class.getConstructor0(Unknown Source)
    at java.lang.Class.getConstructor(Unknown Source)
at org.apache.directory.shared.ldap.codec.standalone.StandaloneLdapApiService.loadDefaultExtendedOperationRequests(StandaloneLdapApiService.java:298) at org.apache.directory.shared.ldap.codec.standalone.StandaloneLdapApiService.loadExtendedOperations(StandaloneLdapApiService.java:273) at org.apache.directory.shared.ldap.codec.standalone.StandaloneLdapApiService.<init>(StandaloneLdapApiService.java:168) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
at org.apache.directory.shared.ldap.codec.api.LdapApiServiceFactory.initialize(LdapApiServiceFactory.java:127) at org.apache.directory.shared.ldap.codec.api.LdapApiServiceFactory.getSingleton(LdapApiServiceFactory.java:89) at org.apache.directory.server.core.DefaultDirectoryService.<init>(DefaultDirectoryService.java:149) at org.apache.directory.server.config.builder.ServiceBuilder.createDirectoryService(ServiceBuilder.java:1291) at org.apache.directory.server.ApacheDsService.initDirectoryService(ApacheDsService.java:295) at org.apache.directory.server.ApacheDsService.start(ApacheDsService.java:176) at org.apache.directory.server.wrapper.ApacheDsTanukiWrapper.start(ApacheDsTanukiWrapper.java:72) at org.tanukisoftware.wrapper.WrapperManager$12.run(WrapperManager.java:2788) [12:15:49] ERROR [org.apache.directory.server.wrapper.ApacheDsTanukiWrapper] - Failed to start the service.
org.apache.directory.shared.ldap.model.exception.LdapOtherException
at org.apache.directory.server.core.api.partition.AbstractPartition.initialize(AbstractPartition.java:77) at org.apache.directory.server.core.DefaultDirectoryService.initialize(DefaultDirectoryService.java:1832) at org.apache.directory.server.core.DefaultDirectoryService.startup(DefaultDirectoryService.java:1258) at org.apache.directory.server.ApacheDsService.initDirectoryService(ApacheDsService.java:308) at org.apache.directory.server.ApacheDsService.start(ApacheDsService.java:176) at org.apache.directory.server.wrapper.ApacheDsTanukiWrapper.start(ApacheDsTanukiWrapper.java:72) at org.tanukisoftware.wrapper.WrapperManager$12.run(WrapperManager.java:2788)
Caused by: java.lang.NullPointerException
at org.apache.directory.server.core.shared.partition.DefaultPartitionNexus.doInit(DefaultPartitionNexus.java:203) at org.apache.directory.server.core.api.partition.AbstractPartition.initialize(AbstractPartition.java:72)
    ... 6 more

Also tried to add to my code the following, just to get some fields initialized, so I don't get the NullPointerException described in my previous post:

Properties p = new Properties(System.getProperties());
p.setProperty("default.extendedOperation.requests", "org.apache.directory.shared.ldap.extras.extended.ads_impl.cancel.CancelFactory,org.apache.directory.shared.ldap.extras.extended.ads_impl.certGeneration.CertGenerationFactory,org.apache.directory.shared.ldap.extras.extended.ads_impl.gracefulShutdown.GracefulShutdownFactory,org.apache.directory.shared.ldap.extras.extended.ads_impl.storedProcedure.StoredProcedureFactory"); p.setProperty("default.extendedOperation.responses", "org.apache.directory.shared.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulDisconnectFactory");
System.setProperties(p);

I got:
javax.naming.NamingException [Root exception is javax.naming.CommunicationException: [LDAP: error code 2 - Unrecognized extended operation EXTENSION_OID: 1.3.6.1.4.1.18060.0.1.6]; remaining name ''] at org.apache.directory.shared.ldap.sp.JavaStoredProcUtils.callStoredProcedure(JavaStoredProcUtils.java:168)
    at vb.App.testStoredProcedure(App.java:157)
    at vb.App.main(App.java:36)
Caused by: javax.naming.CommunicationException: [LDAP: error code 2 - Unrecognized extended operation EXTENSION_OID: 1.3.6.1.4.1.18060.0.1.6]; remaining name ''
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.extendedOperation(Unknown Source)
at javax.naming.ldap.InitialLdapContext.extendedOperation(Unknown Source) at org.apache.directory.shared.ldap.sp.JavaStoredProcUtils.callStoredProcedure(JavaStoredProcUtils.java:158)
    ... 2 more


None of it seems to be the right thing.

You also write that stored procedures are currently highly experimental. Does it mean that the code is partly there, but is not used? Are stored procedures not implemented, yet, or is there another api that I can use? Thanks

Reply via email to