ObjectIsClosedException: SAP DBTech JDBC: Object is closed
Hi everybody,
i try to insert data via jdbc in a loop (a Thread) with a PreparedStatement.
the first insertion is successful - but all following inserts are not because of
ObjectIsClosedException (see jdbc-traces)
I do not close the PrepearedStatement or the Connection.
What is the cause of the "[T166].close()" (see trace #2) ???
the Problem is with a call DBROC ({call INSERTEVENTENTRY(?,?,?,?,?,?,?,?,?,?,?,?,?,?)}, too!!
Thanks for your help!
Matthias
(MaxDB is running on SuSE Linux 11.1)
JDBC-Trace: #1
===========================
ClassLoader: sun.misc.Launcher$AppClassLoader at 1a16869
package com.sap.dbtech.jdbc, MaxDB JDBC Driver, SAP AG, 7.6.06 Build 002-000-008-537 (Make-Version: 7.7.06 Build 009-121-202-944) on Java 1.6.0_10
Thread a8c488 main Timestamp: 2009-05-15 13:06:58.792
new Connection 'jdbc:sapdb://xxxxxxxxxxEVENTDB'
user=eventhist
password=***
connectiontrace=/home/ighjhgj/workspace/EventLogger/jd...
Reject GSS Authentication - password is not empty
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000]
Thread 1431340 Thread-3 Timestamp: 2009-05-15 13:07:41.02
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setTimestamp (1, 2009-05-15 12:39:12.175)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setShort (2, 2)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setShort (3, 0)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setShort (4, -1)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setString (5, Biologie 2)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setString (6, 01GD61)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setString (7, aus)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setString (8, Nährstoffpumpe Gaswäsche)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setString (9, null)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setString (10, null)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setString (11, null)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setString (12, null)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setString (13, null)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].setString (14, null)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[T141][ParseID 000002440000090154000000].executeUpdate ()
new RTEException: -708 Timeout
whereAmIjava.lang.Throwable
at com.sap.dbtech.util.Tracer.whereAmI(Tracer.java:328)
at com.sap.dbtech.rte.comm.RTEException. 0
com.sap.dbtech.jdbc.ConnectionSapDB at 166aa18[T142].commit ()
com.sap.dbtech.jdbc.ConnectionSapDB at 166aa18[T142].close ()
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[closed][ParseID 000002450000060154000000].setTimestamp (1, 2009-05-15 13:07:35.886)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[closed][ParseID 000002450000060154000000].setShort (2, 1)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[closed][ParseID 000002450000060154000000].setShort (3, 1)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[closed][ParseID 000002450000060154000000].setShort (4, 1)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[closed][ParseID 000002450000060154000000].setString (5, Biologie 2)
<-!
Timestamp: 2009-05-15 13:07:41.111com.sap.dbtech.jdbc.exceptions.ObjectIsClosedException: SAP DBTech JDBC: Object is closed.
at com.sap.dbtech.jdbc.ConnectionItem.assertOpen(ConnectionItem.java:53)
at com.sap.dbtech.jdbc.CallableStatementSapDB.setString(CallableStatementSapDB.java:2191)
at com.sap.dbtech.jdbc.trace.log.PreparedStatement.setString(PreparedStatement.java:704)
at com.sap.dbtech.jdbc.trace.PreparedStatement.setString(PreparedStatement.java:336)
at de.pkv.eventlogger.handler.EventLogEntryDAO.insertEventLogEntry(EventLogEntryDAO.java:141)
at de.pkv.eventlogger.handler.DBhistoryOutputHandler.run(DBhistoryOutputHandler.java:50)
at java.lang.Thread.run(Thread.java:619)
com.sap.dbtech.jdbc.ConnectionSapDB at 166aa18.close ()
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[closed][ParseID 000002450000060154000000].setTimestamp (1, 2009-05-15 13:07:36.046)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[closed][ParseID 000002450000060154000000].setShort (2, 2)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[closed][ParseID 000002450000060154000000].setShort (3, 0)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[closed][ParseID 000002450000060154000000].setShort (4, -1)
com.sap.dbtech.jdbc.CallableStatementSapDB at 17ce4e7[closed][ParseID 000002450000060154000000].setString (5, Biologie 2)
<-!
Timestamp: 2009-05-15 13:07:41.119com.sap.dbtech.jdbc.exceptions.ObjectIsClosedException: SAP DBTech JDBC: Object is closed.
at com.sap.dbtech.jdbc.ConnectionItem.assertOpen(ConnectionItem.java:53)
at com.sap.dbtech.jdbc.CallableStatementSapDB.setString(CallableStatementSapDB.java:2191)
at com.sap.dbtech.jdbc.trace.log.PreparedStatement.setString(PreparedStatement.java:704)
at com.sap.dbtech.jdbc.trace.PreparedStatement.setString(PreparedStatement.java:336)
at de.pkv.eventlogger.handler.EventLogEntryDAO.insertEventLogEntry(EventLogEntryDAO.java:141)
at de.pkv.eventlogger.handler.DBhistoryOutputHandler.run(DBhistoryOutputHandler.java:50)
at java.lang.Thread.run(Thread.java:619)
JDBC-Trace: #2
===========================
ClassLoader: sun.misc.Launcher$AppClassLoader at 1a16869
package com.sap.dbtech.jdbc, MaxDB JDBC Driver, SAP AG, 7.6.06 Build 002-000-008-537 (Make-Version: 7.7.06 Build 009-121-202-944) on Java 1.6.0_10
Thread a8c488 main Timestamp: 2009-05-15 22:48:58.594
new Connection 'jdbc:sapdb://xxxxxxx/EVENTDB'
user=eventhist
password=***
connectiontrace=/home/mlbbl/workspace/EventLogger/jd...
Reject GSS Authentication - password is not empty
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00]
Thread e45076 Thread-3 Timestamp: 2009-05-15 22:49:15.555
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setTimestamp (1, 2009-05-15 22:48:26.031)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setShort (2, 6)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setShort (3, 0)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setShort (4, -1)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setString (5, KM2 Konstt)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setString (6, null)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setString (7, null)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setString (8, null)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setString (9, null)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setString (10, KM2)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setString (11, DCT1_XDC8:0)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setString (12, S24VD20.ACK)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setString (13, null)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].setString (14, null)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[T166][ParseID 0000026800000a0212003c00].execute ()
=> false
com.sap.dbtech.jdbc.ConnectionSapDB at 166aa18[T166].close ()
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[closed][ParseID 0000026800000a0212003c00].setTimestamp (1, 2009-05-15 22:48:26.021)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[closed][ParseID 0000026800000a0212003c00].setShort (2, 1)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[closed][ParseID 0000026800000a0212003c00].setShort (3, 1)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[closed][ParseID 0000026800000a0212003c00].setShort (4, 1)
com.sap.dbtech.jdbc.CallableStatementSapDB at 1c0e45a[closed][ParseID 0000026800000a0212003c00].setString (5, KM2 Konstt)
<-!
Timestamp: 2009-05-15 22:49:15.692com.sap.dbtech.jdbc.exceptions.ObjectIsClosedException: SAP DBTech JDBC: Object is closed.
at com.sap.dbtech.jdbc.ConnectionItem.assertOpen(ConnectionItem.java:53)
at com.sap.dbtech.jdbc.CallableStatementSapDB.setString(CallableStatementSapDB.java:2191)
at com.sap.dbtech.jdbc.trace.log.CallableStatement.setString(CallableStatement.java:2888)
at com.sap.dbtech.jdbc.trace.CallableStatement.setString(CallableStatement.java:1050)
at de.pkv.eventlogger.handler.EventLogEntryDAO.callInsertEventLogEntry(EventLogEntryDAO.java:150)
at de.pkv.eventlogger.handler.DBhistoryOutputHandler.run(DBhistoryOutputHandler.java:52)
at java.lang.Thread.run(Thread.java:619)
it was the wrong place for a finally-statement in run()-Method:
public void run() {
while (true) { // do forever
try {
entry = this.theQueue.take(); // wait, if empty
if (DEBUG) System.out.println(name + ": try to take from queue: " + entry);
if (DEBUG) System.out.println(name + ": EventLogEntry: " + entry.toString());
// do the work: insert into Database:
success = dao.insertEventLogEntry(entry); // insert new Entry (Prep.Statement)
//success = dao.callInsertEventLogEntry(entry); // insert new Entry (call db_proc)
if (DEBUG) System.out.println(name + ": Insert new LogEntry. Success: " + success);
// Thread.sleep(10);
//Thread.yield();
} catch (InterruptedException e) {
System.err.println(name + ": Error in Thread.sleep()");
e.printStackTrace();
} catch (Exception e) {
System.err.println(name + ": Error: " + e.getMessage());
} // catch
// finally {
// if (con != null) {
// try {
// con.close();
// } catch (SQLException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } // if con
// } // finally
} // while
} // run
regards
Matthias
Similar Messages
-
Dear All,
We are getting the below error when we tried to call procedure ART_PROC using the SYSTEM user in SAP HANA Studio,
Could not execute 'call "TESTECC"."ART_PROC"'
SAP DBTech JDBC: [258]: insufficient privilege: Not authorized
Kindly provide your suggestions on the same.
Thanks
Arun RHello Arun,
Firstly it is **not** recommended to use SYSTEM for anything other than management tasks.
My Assumptions
* the procedure ART_PROC was not created by the SYSTEM user
Solution : you need to give EXECUTE privileges on the procedure to SYSTEM
How: Only the user who created the procedure or who has been give grant privilege can give the EXECUTE privilege. SYSTEM cannot give itself this privilege
For the Grant command check out sec 1.8.6.17 of the http://help.sap.com/hana/SAP_HANA_SQL_Script_Reference_en.pdf
OR
in the HANA Studio
in the System tab expand the system with the log in user as the owner/grantor of the privilege
here you will see a node called Security.
Right-click and choose 'Find User/Role'
Type System in the search dialog that opens - double click on SYSTEM user displayed below
System user opens up - Navigate to Object Privileges tab
here using the green '+' button search for ART_PROC and then on the right side tick the 'Execute' checkbox
click on save.
Warm regards
aadi -
SAP HANA security issue: SAP DBTech JDBC: [258]
Hello experts,
I am trying SAP HANA security features by playing out with a test user (MYTESTUSER) I've previously created. This is the permissions detail I've granted to the mentioned user:
Granted Roles:
PUBLIC
Object Privileges:
_SYS_BIC : SELECT
_SYS_REPO : EXECUTE, SELECT
REPOSITORY_REST (SYS): EXECUTE
MYSCHEMA : SELECT (Contains source tables for views)
Package Privileges:
TEST.MYTEST (Package containing my views)
Analytic Privileges:
AP_MYTEST : Contains all my views and a couple restrictions over an attribute.
What do I expect?: when logging on as MYTESTUSER it should be able to deploy the different folders in SAP HANA Studio, dive into "Content" folder, and even more: reach the package TEST.MYTEST, once there by selecting "Calculation Views" folder then being able to open CV_MYTEST calc view (which was already added into AP_MYTEST shown above).
What happens as is?: Running as MYTESTUSER I am able to reach the calc view, when opened it is able for view only (its design). When pushing over the button "Open in Data Preview Editor" it trhows me the error:
Cannot get the data provider outline
SAP DBTech JDBC: [258]: insufficient privilege: insufficient privilege: Not authorized at ptime/query/checker/query_check.cc:2418
What is expected?: Running as MYTESTUSER "Open in Data Preview Editor" feature must return and show adequate data from calculated view.
In consequence:
What does this error ("Not authorized at ptime/query/checker/query_check.cc:2418") specifically means and how to start addressing it?
I'm unable to determine what is crashing or in what point it doesn't work. Any clues?
I've also realized that there's no way out to perform some kind of trace (at least in an easy-known-fashion). Could you also advice? it would be quite important to be able to detect what are specifically the missing authorizations for a performed action. (kinda SU53 in SAP)
Any clues or advices are welcome. Thanks a lot in advance,
BernardoHi Bernardo,
Can you check whether _SYS_REPO has SELECT access on your schema. Open _SYS_REPO user and check whether your schema is listed under objects privileges or not. If not run the below query.
GRANT SELECT ON SCHEMA <schema_name> TO _SYS_REPO WITH GRANT OPTION.
if it doesn't work try to give SELECT and EXECUTE access on both _SYS_BI and _SYS_BIC to your schema and check. And also but default your should have all the privileges on your schema.
Regards,
Venkat N. -
Hi Gurus,
I am trying to load a HANA column table using the import function and get the following error even though the mappings from the file to the table are 1:1.
I get the following errors:
Error 1: SAP DBTech JDBC: Result set is positioned before first row.
Error 2: SAP DBTech JDBC: [259] (at 26): invalid table name: Could not find table/view RS_POOL_CLUSTER_TABLES in schema SYSTEM: line 1 col 27 (at pos 26)
With the following stack trace:
com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [259] (at 26): invalid table name: Could not find table/view RS_POOL_CLUSTER_TABLES in schema SYSTEM: line 1 col 27 (at pos 26)
at com.sap.db.jdbc.exceptions.SQLExceptionSapDB.createException(SQLExceptionSapDB.java:334)
at com.sap.db.jdbc.exceptions.SQLExceptionSapDB.generateDatabaseException(SQLExceptionSapDB.java:165)
at com.sap.db.jdbc.packet.ReplyPacket.buildExceptionChain(ReplyPacket.java:100)
at com.sap.db.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:1141)
at com.sap.db.jdbc.ConnectionSapDB.execute(ConnectionSapDB.java:888)
at com.sap.db.jdbc.StatementSapDB.sendCommand(StatementSapDB.java:929)
at com.sap.db.jdbc.StatementSapDB.sendSQL(StatementSapDB.java:978)
at com.sap.db.jdbc.StatementSapDB.execute(StatementSapDB.java:256)
at com.sap.db.jdbc.StatementSapDB.executeQuery(StatementSapDB.java:401)
at com.sap.db.jdbc.trace.Statement.executeQuery(Statement.java:131)
at com.sap.ndb.studio.bi.dataprovisioning.util.DBUtil.getPoolTables(DBUtil.java:200)
at com.sap.ndb.studio.bi.dataprovisioning.util.DBUtil.getTablesToHide(DBUtil.java:188)
at com.sap.ndb.studio.bi.filedataupload.ui.wizards.pages.SelectTableDialog.createDialogArea(SelectTableDialog.java:108)
at org.eclipse.jface.dialogs.Dialog.createContents(Dialog.java:775)
at org.eclipse.jface.window.Window.create(Window.java:432)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1104)
at com.sap.ndb.studio.bi.filedataupload.ui.wizards.pages.SelectTableDialog.create(SelectTableDialog.java:186)
at com.sap.ndb.studio.bi.filedataupload.ui.wizards.pages.ImportFileSelectionWizardPage$14.widgetSelected(ImportFileSelectionWizardPage.java:779)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:826)
at org.eclipse.jface.window.Window.open(Window.java:802)
at org.eclipse.ui.internal.handlers.WizardHandler$Import.executeHandler(WizardHandler.java:152)
at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:279)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:290)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:243)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:224)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:167)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:420)
at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:157)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
I'm sure many of you have come across this before. Any help will be much appreciated.
Thanks in advanceHello Akhtar,
Have you tryed to delete the heador row from your file?
I received the same error when loading a csv file, but when I delete the heador row it worked.
Best Regards,
Juliana Genova -
SAP DBTech JDBC: [260] Error
Hi,
We have installed a SAP HANA 80. I'm created a simple table with two fields (field01, field02) and then created an analytic view for testing. I activated without any errors. But when I click preview data it gives the error below. Also when I try to connect via Lumira, (I'm able to see the analytic view in lumira) while retrieving the data it gives the error below agian.
I have no field named ORDER. Any ideas?
Thanks.
SAP DBTech JDBC: [260]: invalid column name: invalid column name: ORDER: line 1 col 3934 (at pos 3933) at ptime/query/checker/check_expr.cc:846How do I see the query formed? I just right click on the Analytic View and click "Preview Data"
I installed also HANA Studio 80 (which was before 70). Now I still receive the same error but there is this detail:
MDX SELECT * FROM BIMC_DIMENSION_VIEW WHERE CUBE_NAME = 'DENEME2' AND CATALOG_NAME = 'Trendbox'
An exception stack trace is not available.
When I execute the statement seperately I get the error:
Could not execute 'MDX SELECT * FROM BIMC_DIMENSION_VIEW WHERE CUBE_NAME = 'DENEME2' AND CATALOG_NAME = 'Trendbox'' in 195 ms 217 µs .
SAP DBTech JDBC: [260]: invalid column name: invalid column name: ORDER: line 1 col 3934 (at pos 3933) at ptime/query/checker/check_expr.cc:846 -
SAP DBTech JDBC: [4]: cannot allocate enough memory: Out of memory
Hello,
I am currently experiencing this error when making request to the Hana database via jdbc : SAP DBTech JDBC: [4]: cannot allocate enough memory: Out of memory
I guess I am running out of space, so I wanted to delete some data from unused tables. The problem is that I cannot connect with Studio anymore "Error when connecting to system".
Is there another way to delete data from some tables when getting this particular error ?
Does anyone experienced such a situation ?
Thank you,
BenoîtHi Benoit,
Please plan to migrate to the latest version from Rev 38 before 1 year license expires in Rev 38 in Oct 2013. You need to export your content and import in the latest version.
As you are aware, a lot of bugs are fixed between Rev 38 and the newer releases along with new SPS5 features and HANA One is adding new web based management features in each HANA One release which does not need SSH to stop|start HANA as it can be done in browser starting in Rev 52 (check out The specified item was not found.for additional info). Please stay tuned for the upcoming version which will have additional management features to manage your instance.
Thanks,
Swapan -
Having problems with com.sap.dbtech.jdbc.DriverSapDB
Hi all,
I'm using webdynpro and i need to connect to a db.
the line below throghs the Exception
the line above throghs an Exception ClassNotFoundException
Class.forName("com.sap.dbtech.jdbc.DriverSapDB");
I have imported thre jar sapDB.jar what else can i do?
I want to connect to an sql DB via java and i stack.
need your help,
Yoav
Message was edited by: Yoav Toussia CohenHi Yoav,
I belive you put the database access codes in your Web Dynpro's implementation. In this case you need to have your JDBC driver deployed as shared library to the server. You also need to define the Library Reference in your Web Dynpro's project properties.
However, this is not a good approach and Web Dynpro never intends for business process development. You should have an EJB wrapped your database access. Then import this EJB as a model in Web Dynpro to preserve the MVC separation. Always remember Web Dynpro is an UI development tool and not for business process.
Regards,
Marc -
SAP DBTech JDBC: [258]: insufficient privilege: Not authorized
I am using SAP HANA Cloud Trial; I created Analytic View based on two table dimension table and fact table, I can display content from both tables, but I can not display data preview from my Analytic View, getting authorization message;SAP DBTech JDBC: [258]: insufficient privilege: Not authorized.
Hi,
Please post this issue under SAP HANA Cloud Platform space. The platform experts should be able to help with that.
Regards,
Ifat. -
ClassNotFoundException: com.sap.dbtech.jdbc.DriverSapDB
where i can find sapDB.jar? i searched everywhere in my directory, but didn't find anything.
hi
good
try this
ftp://ftp.sap.com/pub/sapdb/bin/java/sapdbc.jar
plz reward points if helpful.
thanks
mrutyun^ -
Hi all
I am trying to connect hana using jdbc code
here is my code
Class.forName("com.sap.db.jdbc.Driver");
String url = "jdbc:sap://host:30015/?";
String user = "Mujadid";
String password = "Cloud123";
System.out.println("try to connect to HANA !");
Connection cn = java.sql.DriverManager.getConnection(url, user, password);
System.out.println("Connection to HANA successful!");
ResultSet rs = cn.createStatement().executeQuery("select * from _SYS_STATISTICS.STATISTICS_ALERTS");
rs.next();
System.out.println(rs.getString(1));
I am facing following exception
com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [414]: user is forced to change password: alter password required for user MUJADID
at com.sap.db.jdbc.exceptions.SQLExceptionSapDB.createException(SQLExceptionSapDB.java:345)
Any suggestion?Hi Mathan!
now above error is esolved
But i m facing following error when i try to read connections table from live2 schema
com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [259] (at 20): invalid table name: Could not find table/view CONNECTIONS in schema LIVE2
and this table exist in LIVE2 schema
Any suggestion? -
Concurrent use of JDBC objects
Which objects in JDBC can generally be used concurrently?
For example, can I use the same Connection object for two simultaneous calls or do I need to create new instances?
How about using a PreparedStatement twice?For example, can I use the same Connection object for
two simultaneous calls or do I need to create new
instances?Firstly ,how do u propose to do the concurrent call ?
Almost all the critical methods in Connection object are synchronized.Meaning that ,even if u were to call it concurrently ,there isnt anything very much like it.As the object lock mechanism takes care of it.However way u make the concurrent call , one call has to wait till the other releases the object lock.
How about using a PreparedStatement twice?U can use the Statement and PreparedStatement objects as many times as u want .The only issue being that the resulset objects associated with the Statement objects are closed with each new call . -
Hello,
(Running NW04SP14)
I am trying to use the jdbc class in my code as follows:
Class.forName("com.sap.portals.jdbc.sqlserver.SQLServerDriver");
I am getting a ClassNotFoundException.
Could you please tell me what do I need to do to import this class for all my portal components?
Do I need to physically include a jar file, if so where can I find it?
Should I include a sharing reference in my code?
Thanks.Hi Detlev,
I'm asking to you about a problem with connection that since many days I'm not able to solve. I hope in your help regarding this.
I have to connect to Oracle DB from an EJB, I used two solution but without success:
<b>----
1. JDBC Connection from a Bean
</b>
Connection con = null;
Statement stmt = null;
ResultSet rset = null;
String connectionURLThin = "jdbc:oracle:thin:@liposv01:1527:PCD";
String driverClass = "oracle.jdbc.driver.OracleDriver";
String userID = "sappcddb";
String userPassword = "1qaz2wsx";
String queryString = "select ordine_modello_sq.nextval from dual";
int risultato = 0;
try {
//check = "start connection";
Class.forName(driverClass).newInstance();
con = DriverManager.getConnection(connectionURLThin, userID, userPassword);
stmt = con.createStatement ();
rset = stmt.executeQuery(queryString);
if (rset.next()) {
risultato = rset.getInt(1);
//prog_ordine_seq = new Integer(risultato);
//check = "Connessione JDBC avvenuta";
rset.close();
stmt.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
if (con != null) {
try {
con.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
} finally {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
<b>I have the error(the server is unix and a classpath is set)</b>
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
Loader Info -
ClassLoader name: [local/OrdineWD]
Parent loader name: [Frame ClassLoader]
References:
common:service:http;service:servlet_jsp
service:ejb
common:service:iiop;service:naming;service:p4;service:ts
service:jmsconnector
library:jsse
library:servlet
common:library:IAIKSecurity;library:activation;library:mail;library:tcsecssl
library:ejb20
library:j2eeca
library:jms
library:opensql
common:library:com.sap.security.api.sda;library:com.sap.security.core.sda;library:security.class;library:webservices_lib;service:adminadapter;service:basicadmin;service:com.sap.security.core.ume.service;service:configuration;service:connector;service:dbpool;service:deploy;service:jmx;service:jmx_notification;service:keystore;service:security;service:userstore
interface:resourcecontext_api
interface:webservices
interface:ejbserialization
sap.com/tcwddispwda
sap.com/ModelloApplication
sap.com/tcwdcorecomp
service:webdynpro
service:sld
library:tcddicddicservices
library:com.sap.aii.proxy.framework
library:tcgraphicsigs
library:com.sap.mw.jco
library:com.sap.lcr.api.cimclient
library:sapxmltoolkit
library:com.sap.aii.util.rb
library:com.sap.util.monitor.jarm
library:tcddicddicruntime
library:com.sap.aii.util.xml
library:tccolapi
library:com.sap.aii.util.misc
library:tc~cmi
library:tccolruntime
Resources:
/usr/sap/PCD/JC00/j2ee/cluster/server0/apps/local/OrdineWD/webdynpro/public/lib/ModelloHelper.jar
/usr/sap/PCD/JC00/j2ee/cluster/server0/apps/local/OrdineWD/webdynpro/public/lib/app.jar
/usr/sap/PCD/JC00/j2ee/cluster/server0/apps/local/OrdineWD/webdynpro/public/lib/MyCommandBean.jar
/usr/sap/PCD/JC00/j2ee/cluster/server0/apps/local/OrdineWD/webdynpro/public/lib/ModelloEjb.jar
Loading model: {parent,references,local}
<b>----
1. DataSource Connection from sessionBean
</b>
try {
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/ejb/ORDINE_MODELLO_POOL");
Connection con = ds.getConnection();
String query = "select ordine_modello_sq.nextval from dual";
Statement stmt = con.createStatement();
try {
ResultSet rs = stmt.executeQuery(query);
try {
while ( rs.next() ) {
//Insert the sequence value
int prog_ordine_int = rs.getInt(1);
prog_ordine_seq = new Integer(prog_ordine_int);
} finally {
rs.close();
} finally {
stmt.close();
}catch (Exception e) {
e.printStackTrace();
<b>I have the error finding datasource:</b>
com.sap.engine.services.jndi.persistent.exceptions.NamingException: Exception during lookup operation of object with name ejbContexts/sap.com/ModelloApplication/MySessionBean/java:comp/env/jdbc/ORDINE_MODELLO_POOL, cannot resolve object reference. [Root exception is com.sap.engine.services.connector.exceptions.BaseResourceException: ConnectionFactory "jdbc/ORDINE_MODELLO_POOL" does not exist. Possible reasons: the connector in which ConnectionFactory "jdbc/ORDINE_MODELLO_POOL" is defined is not deployed or not started.]
<b>Thanks in advance for your help.</b>
Vito Palasciano -
Lot of cursors hanging even the jdbc connection are closed
We use tomcat and thin oracle driver for out application. But we found lot of cursors hanging even the jdbc connection are closed.
We use a connection pool to manage the connections.after properly closing the connections ,try to set all the Connection objects and ResulSet objects to null (force to null) , most likely these inactive sessions will dissapear.
might be a java garbage collection issue?
anyhow. I managed to get most of these inactive sessions to disappear. although I am using a Servlet. some of them are still not closed
Regards -
SQLEXCEPTION OBJECT ALREADY CLOSED
WIll greatly appreciate your help on this one.
Scenarion: This code works outside WL, though its using the WL pool.
When I move it in WL it doesnt work.Theo nly differnece is that when outside its
runing in a sepearte JVM getitng DB connection from WL poo..When in wL its runing
under WL JVM.WL version 6.1 sp1.MSSQLDriver4.
This is the trace.The next method fails.The QUERY is taking aorund 35 seconds
to fetch 20 rows.
Will appreciate any of ur insight.
Got Connection successfully from datasource Accelerator.ds
Process start time : Mon Sep 16 15:32:10 EDT 2002
cmd is { call PR_GetAct48Data (?,?,?,?,?)}
Stored Procedure return code is : 0
Stored Procedure return message is :
getSQLState()null
InvocationTargetException has occured: java.lang.reflect.InvocationTargetE
xception
InvocationTargetException
java.lang.reflect.InvocationTargetException: java.sql.SQLException: This object
was closed() and cannot be used anymore.
at weblogic.jdbc.mssqlserver4.BaseHandler.complainIfClosed(BaseHandler.j
ava:117)
at weblogic.jdbc.mssqlserver4.TdsResultSet.next(TdsResultSet.java:73)
at weblogic.jdbc.pool.ResultSet.next(ResultSet.java:180)
at weblogic.jdbc.rmi.internal.ResultSetImpl.next(ResultSetImpl.java:132)
at weblogic.jdbc.rmi.internal.ResultSetStraightReader.next(ResultSetStra
ightReader.java:27)
at weblogic.jdbc.rmi.SerialResultSet.next(SerialResultSet.java:71)
at com.chauncey.acc.pdap.ACT48.generateRecords(ACT48.java:295)My guess is that this is a multithreading/synchronization issue.
Your class has Connection and ResultSet as member variables.
In multithread environment (a servlet) it possible that different
threads will call methods on the instance of the class producing
this exception as a result.
The solution would be either avoiding using this class from
different threads or making the JDBC object local to the
methods.
Regards,
Slava Imeshev
"Alex" <[email protected]> wrote in message
news:[email protected]...
>
Thanks joe,
I have tested the connection object and its not null..and not does themethod
conn.isClosed() returns true.The same code works in anstand alone clientapplication
using WL pool.
I am attaching the .java file for the code.It fails in the rs.next line ingeneraterecords()
method.
I did see you post about the same problem dated 2001 but no definitiveanswer
to it.
Will appreciate any help.I have tried testing the result .next method inthe fetchbyprocedure
method and it faisl there too.
Thanks.
Joseph Weinstein <[email protected]> wrote:
Hi. I'd have to seed your code to be sure. If you're running the code
in a JSP/servlet, the issue is probably the multiple threads all running
the same class at the same time, so one thread may have closed the
connection
or statement that another thread is still trying to use. For safety in
multi-
threaded code, all JDBC objects should be method objects.
Joe
ALex wrote:
WIll greatly appreciate your help on this one.
Scenarion: This code works outside WL, though its using the WL pool.
When I move it in WL it doesnt work.Theo nly differnece is that whenoutside its
runing in a sepearte JVM getitng DB connection from WL poo..When inwL its runing
under WL JVM.WL version 6.1 sp1.MSSQLDriver4.
This is the trace.The next method fails.The QUERY is taking aorund35 seconds
to fetch 20 rows.
Will appreciate any of ur insight.
Got Connection successfully from datasource Accelerator.ds
Process start time : Mon Sep 16 15:32:10 EDT 2002
cmd is { call PR_GetAct48Data (?,?,?,?,?)}
Stored Procedure return code is : 0
Stored Procedure return message is :
getSQLState()null
InvocationTargetException has occured:
java.lang.reflect.InvocationTargetE
xception
InvocationTargetException
java.lang.reflect.InvocationTargetException: java.sql.SQLException:This object
was closed() and cannot be used anymore.
at
weblogic.jdbc.mssqlserver4.BaseHandler.complainIfClosed(BaseHandler.j
ava:117)
atweblogic.jdbc.mssqlserver4.TdsResultSet.next(TdsResultSet.java:73)
at weblogic.jdbc.pool.ResultSet.next(ResultSet.java:180)
atweblogic.jdbc.rmi.internal.ResultSetImpl.next(ResultSetImpl.java:132)
>>>
atweblogic.jdbc.rmi.internal.ResultSetStraightReader.next(ResultSetStra
ightReader.java:27)
atweblogic.jdbc.rmi.SerialResultSet.next(SerialResultSet.java:71)
at com.chauncey.acc.pdap.ACT48.generateRecords(ACT48.java:295) -
How to upload data into SAP BW Info Objects using SAP XI
Hi,
I need to upload master and hierarchy data into SAP BW Info Objects using SAP XI as EAI.
Can anyone suggest me the best solution to do it.
Thanks in Advance,
Volker.Hi! Have you not checked the BW-XI Integration document? It is available on the main page of the SDN section for XI. Almost all the steps for the integration are there...
Maybe you are looking for
-
Release Strategy for Contract is not getting picked whereas it is ok for PO
Dear Experts, I have created release strategy for PO with doc type, p.org, net value as chars and frg_ekko as class and release group as 02. I kept NB,FO,MK and WK as char values. it is working fine for PO's whereas it is not getting picked for Contr
-
User exit for create delivery order
hi! expert. i have a scenario when user B create delivery order (VL01N) then get DO No. I want to send this DO No. to user A 's mail. when i look for user exit with this [program|http://wiki.sdn.sap.com/wiki/display/ABAP/FindEXITandBADIfroagivenTr
-
Hello friends , can anybody help me .iam trying to create retained earning account in master data in img but the errors continously coming is (data can only be displayed -data is still being processed) its coming only in display mode not in change mo
-
Java server pages+ database
res sir, I want to ask you a qestion regarding a java server page sir pls. can you tell me the answer of my question. i will be pleased to know about my answer. Q1:- Can Java Server Pages help to communicate With Databaseand Can I put any informatin
-
Hi all, I am using oracle 9i database with win 2003 server. My database's sysdate not according to OS date. How can I reset sysdate to OS date. Pls help..., urgent.