Skip to Content
3

How to access the PAL library in Hana Express from a XSA project in the SystemDB?

Nov 09, 2016 at 09:07 AM

630

avatar image

Hi,

when trying to train a back-propagation neural network from a stored procedure, which we call from our Node.js based service in XSA, we receive following error object in return:

11/9/16 8:27:31.500 AM [APP/10636-0] ERR  { [Error: column store error: 
search table error:  [34091] No ScriptServer available. See SAPNote 
1650957 for further information.]
11/9/16 8:27:31.500 AM 
[APP/10636-0] ERR  message: 'column store error: search table error:  
[34091] No ScriptServer available. See SAPNote 1650957 for further 
information.',
11/9/16 8:27:31.500 AM [APP/10636-0] ERR  code: 2048,
11/9/16 8:27:31.500 AM [APP/10636-0] ERR  sqlState: 'HY000',
11/9/16 8:27:31.500 AM [APP/10636-0] ERR  level: 1,
11/9/16 8:27:31.500 AM [APP/10636-0] ERR  position: 0 }


When trying to enable the script server for the SystemDB with

ALTER DATABASE SYSTEMDB ADD 'scriptserver'


I get the error:

Could not execute 'ALTER DATABASE SYSTEMDB ADD 'scriptserver'' in 8 ms 941 µs . 
SAP DBTech JDBC: [7]: feature not supported: Only applicable to user databases 


As was written in SAPNote 1650957 and the getting started guide for Predictive on HANA Express, the script server has to be enabled on a tenant database instead of on the SYSTEMDB.

After creating a tenant database PAL and adding a script server to it with

ALTER DATABASE PAL ADD 'scriptserver'

this server is starting correctly.

The question now is:

how are we supposed to access that tenant DB from within our XSA application within an HDI container and call the stored procedure to train our neural network?

When we try to Prepare our newly created tenant DB in the XS Administration Console as a logical database, we always get unspecific "authorization failed" errors, although the provided SYSTEM user credentials are correct (this has been verified by logging in to the tenant DB manually with HANA Studio):

Error during registerTenant PAL, Fatal error occured during installation: SQL Error during HDI initialization: [10]: authentication failed

Checking the xscontroller log revealed the following error message:

 [2016-11-09 08:54:32:585]-[Installation.Procedure]-[info]-[XSA_ADMIN]-[11722]: ###############################################
[2016-11-09 08:54:32:585]-[Installation.Procedure]-[info]-[XSA_ADMIN]-[11722]: STARTING INSTALLATION FROM BASE VERSION 1.0.34.275394
[2016-11-09 08:54:32:585]-[Installation.Procedure]-[info]-[XSA_ADMIN]-[11722]: ###############################################
[2016-11-09 08:54:32:585]-[Installation.Procedure]-[info]-[XSA_ADMIN]-[11722]: ##########
[2016-11-09 08:54:32:585]-[Installation.Procedure]-[info]-[XSA_ADMIN]-[11722]: Installing step: Create  stored tenant
[2016-11-09 08:54:32:610]-[Installation.Procedure]-[info]-[XSA_ADMIN]-[11722]: ##########
[2016-11-09 08:54:32:610]-[Installation.Procedure]-[info]-[XSA_ADMIN]-[11722]: ##########
[2016-11-09 08:54:32:610]-[Installation.Procedure]-[info]-[XSA_ADMIN]-[11722]: Installing step: Enable HDI within a tenant DB
[2016-11-09 08:54:32:650]-[Installation.Basic.Components]-[log]-[XSA_ADMIN]-[11722]: Starting HDI initialization at 2016-11-09 08:54:32.649
[2016-11-09 08:54:32:665]-[Installation.Basic.Components]-[log]-[XSA_ADMIN]-[11722]: Executing statement: ALTER DATABASE PAL  ADD 'diserver';
[2016-11-09 08:54:32:669]-[Installation.Procedure]-[error]-[XSA_ADMIN]-[11722]: Fatal error occured during installation: SQL Error during HDI initialization: [10]: authentication failed
com.sap.xs2rt.installation.util.InstallationException: SQL Error during HDI initialization: [10]: authentication failed
        at com.sap.xs2rt.installation.impl.hana.EnableHdi.enableHdi(EnableHdi.java:110)
        at com.sap.xs2rt.installation.impl.hana.tenant.EnableHdiTenant.install(EnableHdiTenant.java:49)
        at com.sap.xs2rt.installation.procedures.InstallationProcedure.perform(InstallationProcedure.java:132)
        at com.sap.xs2rt.installation.impl.hana.RegisterTenant$1.call(RegisterTenant.java:178)
        at com.sap.xs2rt.installation.impl.hana.RegisterTenant$1.call(RegisterTenant.java:174)
        at com.sap.xs2rt.installation.impl.hana.RegisterTenant.executeSteps(RegisterTenant.java:235)
        at com.sap.xs2rt.installation.impl.hana.RegisterTenant.execute(RegisterTenant.java:171)
        at com.sap.xs2rt.installation.impl.hana.RegisterTenant.registerTenant(RegisterTenant.java:283)
        at com.sap.xs2rt.controller.impl.server.rest.AdminResourceHandler.lambda$putAdminTenantByName$202(AdminResourceHandler.java:572)
        at com.sap.xs2rt.controller.impl.server.rest.ResourceHandlerBase.executeRequestImpl(ResourceHandlerBase.java:396)
        at com.sap.xs2rt.controller.impl.server.rest.ResourceHandlerBase.executeRequest(ResourceHandlerBase.java:275)
        at com.sap.xs2rt.controller.impl.server.rest.AdminResourceHandler.putAdminTenantByName(AdminResourceHandler.java:566)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:164)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:181)
        at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:158)
        at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:101)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
        at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
        at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:305)
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
        at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
        at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
        at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:288)
        at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1110)
        at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:381)
        at org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:224)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
        at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
        at java.lang.Thread.run(Thread.java:812)
Caused by: com.sap.db.jdbc.exceptions.jdbc40.SQLInvalidAuthorizationSpecException: [10]: authentication failed
        at com.sap.db.jdbc.exceptions.jdbc40.SQLInvalidAuthorizationSpecException.createException(SQLInvalidAuthorizationSpecException.java:40)
        at com.sap.db.jdbc.exceptions.SQLExceptionSapDB.createException(SQLExceptionSapDB.java:301)
        at com.sap.db.jdbc.exceptions.SQLExceptionSapDB.generateDatabaseException(SQLExceptionSapDB.java:185)
        at com.sap.db.jdbc.packet.ReplyPacket.buildExceptionChain(ReplyPacket.java:102)
        at com.sap.db.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:1031)
        at com.sap.db.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:820)
        at com.sap.db.util.security.AbstractAuthenticationManager.connect(AbstractAuthenticationManager.java:43)
        at com.sap.db.jdbc.ConnectionSapDB.openSession(ConnectionSapDB.java:568)
        at com.sap.db.jdbc.ConnectionSapDB.doConnect(ConnectionSapDB.java:421)
        at com.sap.db.jdbc.ConnectionSapDB.<init>(ConnectionSapDB.java:173)
        at com.sap.db.jdbc.ConnectionSapDBFinalize.<init>(ConnectionSapDBFinalize.java:13)
        at com.sap.db.jdbc.Driver.connect(Driver.java:303)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:208)
        at com.sap.xs2rt.installation.impl.util.DatabaseExecuter.getConnection(DatabaseExecuter.java:146)
        at com.sap.xs2rt.installation.impl.util.DatabaseExecuter.execute(DatabaseExecuter.java:129)
        at com.sap.xs2rt.installation.impl.hana.EnableHdi.enableHdi(EnableHdi.java:80)
        ... 37 more
[2016-11-09 08:54:32:670]-[Installation.Procedure]-[info]-[XSA_ADMIN]-[11722]: ##########

It is not clear why authentication fails and we have no clue, what we are missing here and which extra configuration steps are necessary to make the PAL features usable in our application.

Any help would be appreciated!

Thanks and regards,
Tobias

10 |10000 characters needed characters left characters exceeded

We are looking into this right now and will respond with any updates as soon as we have them. Thank you for your patience!

0
* Please Login or Register to Answer, Follow or Comment.

0 Answers