Use of FutureTask
I have a class which implements Runnable and has a separate method for returning a result (few different methods because you can get various results) .. there is also some stuff that has to be done when cancelling/interrupting the running of this.
Now, I've been asked to use FutureTask
This is where I am stuck. I've read the tutorials, searched Google, but I can't find information on how to use Runnable classes with FutureTask - especially where I need to do more than the standard FutureTask Cancel method and where in different circumstances have to return different result types.
I was also confused about the constructor
FutureTask(Runnable runnable, V result)When I read the Java 1.5 code all this does is set the value of result to what is passed in the constructor... but how can that be when a result can't be set until you actually call runnable.run() method?
My first thought was to create a class which extends FutureTask and use the FutureTask(Runnable runnable, V result) constructor but then I can't figure out the rest.
Calling cancel on a FutureTask will attempt to prevent it from starting, and if it has started, it will attempt to interrupt it if you are using cancel(true).
The Task being run won't end magically. When a Thread is interrupted, is simply sets a flag which should be periodically checked by the task using if(Thread.interrupted()).
Your FutureTask won't be cancellable unless you make it so. And by making it cancellable, you'll already be aware of when to perform your cleanup. There's no need to subclass FutureTask.
Similar Messages
-
Exceptions in Executor.submit
Run the following test code:
public class Test {
public static void main(String[] args) {
ExecutorService executor = Executors.newCachedThreadPool();
executor.submit(new Runnable() {
public void run() {
throw new RuntimeException("This is a runtime exception");
}Why doesn't the stack trace show up on System.out as it would normally do if I had executed the runnable in a new Thread? Is there anyway short of wrapping the whole run method in a try-catch block of getting that stack trace.
TIA.When you submit your Runnable to the ExecutorService you get a Future back. Calling get() on that Future will result in an ExecutionException being thrown. The cause of that exception is your RuntimeException:
import java.util.concurrent.*;
public class Test {
public static void main(String[] args) {
ExecutorService executor = Executors.newCachedThreadPool();
Future<?> f = executor.submit(new Runnable() {
public void run() {
throw new RuntimeException("This is a runtime exception");
try {
f.get();
catch (Exception e) {
e.printStackTrace();
}I've recently started to play around with these things myself, and here is my understanding of it:
An ExecutorService uses a FutureTask by default when you submit a Runnable (see the source code for AbstractExecutorService). That FutureTask basically wraps your Runnable inside atry { ... } catch (Throwable) {... }which explains why your exception doesn't slip through. Instead, the throwable is stored inside the FutureTask. When you call get() on the Future, the throwable is wrapped inside an ExecutionException, as described above. -
Hi,
I have just spent 2 days trying to make sense out of the Callable interface and Future Object. I understand them in essence based on javadocs and online resources I found.
But, I still do not know how to achieve my requirement:
I have implemented Multithreading using Callable interface.
It returns an Object called ResultObject.
It can possibly throw an exception.
1.) I dont know how to access the returned object
2.) How to catch the exception.
thanks in advance
VikasGenerally a Callable is intended to be executed asynchronously on a different thread. If you want to have access to the result then the facility that is responsible for executing the Callable must provide some means of doing that. The easiest thing for you to do is simply to use a FutureTask which does just that. Wrap the Callable in a FutureTask and use that for the asynchronous execution. You can then use FutureTask to see if it's completed and retrieve the result, blocking if necessary.
Also, if you're using an ExecutorService you should just pass the Callable to the submit(Callable) method and use the returned Future to get the result. -
Error while creating a report that uses Oracle OCI JDBC connectivity
Please let me know why my CR and LF characters are removed from my forum posting *****
Hi,
I was trying to create a report that uses Oracle OCI JDBC connectivity. I am using Eclipse3.4 download from "cr4e-all-in-one-win_2.0.2.zip". I have successfully created a JDBC OCI connection.
The connection parameters are given below:
URL: jdbc:oracle:oci8:@xe
Database: xe
username: <userName>
password: <password>
I have tested the above connection in Data source Explorer and it works fine!!!
But I am getting the following error when I drag-and-drop a table from the list of tables. Not sure what I am missing here? Any help is highly appreciated.
com.businessobjects.reports.jdbinterface.common.DBException: InvalidURLOrClassName
at com.crystaldecisions.reports.queryengine.driverImpl.jdbc.JDBCConnection.Open(Unknown Source)
at com.crystaldecisions.reports.queryengine.JDBConnectionWrapper.Open(SourceFile:123)
at com.crystaldecisions.reports.queryengine.Connection.br(SourceFile:1771)
at com.crystaldecisions.reports.queryengine.Connection.bs(SourceFile:491)
at com.crystaldecisions.reports.queryengine.Connection.t1(SourceFile:2979)
at com.crystaldecisions.reports.queryengine.Table.u7(SourceFile:2408)
at com.crystaldecisions.reports.dataengine.datafoundation.AddDatabaseTableCommand.new(SourceFile:529)
at com.crystaldecisions.reports.common.CommandManager.a(SourceFile:71)
at com.crystaldecisions.reports.common.Document.a(SourceFile:203)
at com.businessobjects.reports.sdk.requesthandler.f.a(SourceFile:175)
at com.businessobjects.reports.sdk.requesthandler.DatabaseRequestHandler.byte(SourceFile:1079)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1163)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:657)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:163)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:525)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:523)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at com.businessobjects.crystalreports.designer.core.util.thread.ExecutorWithIdleProcessing$3.doWork(ExecutorWithIdleProcessing.java:182)
at com.businessobjects.crystalreports.designer.core.util.thread.AbstractCancellableRunnable.run(AbstractCancellableRunnable.java:69)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityTask.run(PriorityTask.java:75)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityCompoundCancellableRunnable.runSubtask(PriorityCompoundCancellableRunnable.java:187)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityProgressAwareRunnable.runSubtask(PriorityProgressAwareRunnable.java:90)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityCompoundCancellableRunnable.doWork(PriorityCompoundCancellableRunnable.java:144)
at com.businessobjects.crystalreports.designer.core.util.thread.AbstractCancellableRunnable.run(AbstractCancellableRunnable.java:69)
at com.businessobjects.crystalreports.designer.core.util.thread.ExecutorWithIdleProcessing$IdleTask.run(ExecutorWithIdleProcessing.java:320)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Thanks
Karthik
Edited by: KARTHIK1 on Oct 14, 2009 9:38 PMHi Ted,
Thanks for the feedback. I was able to create a report in Creystal Reports Designer 2008 using OCI. It is not allowing only in the Eclipse plugin. In our environment we are not allowed to user Oracle thin connections and ONLY OCI is allowed.
1) Can you please let me know if there is a way to do this?
2) Will it allow data sources using native database driver?
3) If so, can I use JRC to create these reports from a desktop java program?
Thanks & Regards
Karthik
Edited by: KARTHIK1 on Oct 15, 2009 4:38 PM -
Issue using the Eclipse report designer with Derby Client JDBC Driver
All I am trying to do is add a table to a blank report using the Crystal reports Eclipse plugin. The database is connected successfully in Eclipse using the Derby Client JDBC Driver, but when I try to drag a table from the database over to my blank report, I get the following error:
<br />
<br />
<br />
com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: Could not Add Object.
java.lang.ExceptionInInitializerError---- Error code:-2147215362 Error code name:unknownError
at com.crystaldecisions.sdk.occa.report.lib.ReportSDKException.throwReportSDKException(ReportSDKException.java:65)
at com.businessobjects.crystalreports.designer.core.commands.ReportCommand.throwExecFailure(ReportCommand.java:253)
at com.businessobjects.crystalreports.designer.core.commands.ReportCommand.internalDoCommand(ReportCommand.java:126)
at com.businessobjects.crystalreports.designer.core.commands.ReportCommand.execute(ReportCommand.java:237)
at com.businessobjects.crystalreports.designer.uibase.gef.commands.CoreCommand.execute(CoreCommand.java:70)
at com.businessobjects.crystalreports.designer.dseintegration.DSEDropHandler.drop(DSEDropHandler.java:114)
at org.eclipse.jface.util.DelegatingDropAdapter$3.run(DelegatingDropAdapter.java:211)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.util.DelegatingDropAdapter.drop(DelegatingDropAdapter.java:209)
at org.eclipse.swt.dnd.DNDListener.handleEvent(DNDListener.java:90)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
at org.eclipse.swt.dnd.DropTarget.Drop(DropTarget.java:456)
at org.eclipse.swt.dnd.DropTarget$3.method6(DropTarget.java:258)
at org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:119)
at org.eclipse.swt.internal.ole.win32.COM.DoDragDrop(Native Method)
at org.eclipse.swt.dnd.DragSource.drag(DragSource.java:363)
at org.eclipse.swt.dnd.DragSource.access$0(DragSource.java:289)
at org.eclipse.swt.dnd.DragSource$1.handleEvent(DragSource.java:172)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
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:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
Caused by: com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: java.lang.ExceptionInInitializerError---- Error code:-2147467259 Error code name:failed
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:741)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:167)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:529)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:527)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at com.businessobjects.crystalreports.designer.core.util.thread.ExecutorWithIdleProcessing$3.doWork(ExecutorWithIdleProcessing.java:182)
at com.businessobjects.crystalreports.designer.core.util.thread.AbstractCancellableRunnable.run(AbstractCancellableRunnable.java:69)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityTask.run(PriorityTask.java:75)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityCompoundCancellableRunnable.runSubtask(PriorityCompoundCancellableRunnable.java:187)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityProgressAwareRunnable.runSubtask(PriorityProgressAwareRunnable.java:90)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityCompoundCancellableRunnable.doWork(PriorityCompoundCancellableRunnable.java:144)
at com.businessobjects.crystalreports.designer.core.util.thread.AbstractCancellableRunnable.run(AbstractCancellableRunnable.java:69)
at com.businessobjects.crystalreports.designer.core.util.thread.ExecutorWithIdleProcessing$IdleTask.run(ExecutorWithIdleProcessing.java:320)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
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 com.crystaldecisions.reports.queryengine.driverImpl.jdbc.JDBCConnection.do(Unknown Source)
at com.crystaldecisions.reports.queryengine.driverImpl.jdbc.JDBCConnection.Open(Unknown Source)
at com.crystaldecisions.reports.queryengine.JDBConnectionWrapper.Open(SourceFile:123)
at com.crystaldecisions.reports.queryengine.Connection.br(SourceFile:1771)
at com.crystaldecisions.reports.queryengine.Connection.bs(SourceFile:491)
at com.crystaldecisions.reports.queryengine.Connection.t1(SourceFile:2978)
at com.crystaldecisions.reports.queryengine.Table.u7(SourceFile:2403)
at com.crystaldecisions.reports.dataengine.datafoundation.AddDatabaseTableCommand.new(SourceFile:529)
at com.crystaldecisions.reports.common.CommandManager.a(SourceFile:71)
at com.crystaldecisions.reports.common.Document.a(SourceFile:203)
at com.businessobjects.reports.sdk.requesthandler.f.a(SourceFile:175)
at com.businessobjects.reports.sdk.requesthandler.DatabaseRequestHandler.byte(SourceFile:1079)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1167)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:661)
... 16 more
Caused by: java.lang.SecurityException: sealing violation: package org.apache.derby.impl.store.access.sort is sealed
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.getImplementations(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.getDefaultImplementations(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.runWithState(Unknown Source)
at org.apache.derby.impl.services.monitor.FileMonitor.<init>(Unknown Source)
at org.apache.derby.iapi.services.monitor.Monitor.startMonitor(Unknown Source)
at org.apache.derby.iapi.jdbc.JDBCBoot.boot(Unknown Source)
at org.apache.derby.jdbc.EmbeddedDriver.boot(Unknown Source)
at org.apache.derby.jdbc.EmbeddedDriver.<clinit>(Unknown Source)
... 36 more
<br/>
<br />
<br />
If anyone can help me figure out what I am doing wrong, it would be much appreciated.
Edited by: cehowell on Jan 28, 2011 3:34 PMTed,
When I connect to the Derby database in Eclipse using the embedded driver, I can successfully drag and drop tables to create a report. This driver uses the derby.jar file and has no package sealing violations popping up.
<br/>
<br/>
When specifying a driver for a new derby database in Eclipse, the default Derby client driver expects to use the derbyclient.jar driver file. If I only specify this as the driver file this is the error I get:
<br/>
<br/>
<br/>
<code>
java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.net.FactoryURLClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.businessobjects.crystalreports.designer.dseintegration.DataAccessHelper.setupJRCConfiguration(DataAccessHelper.java:124)
at com.businessobjects.crystalreports.designer.dseintegration.DataAccessHelper.createTable(DataAccessHelper.java:188)
at com.businessobjects.crystalreports.designer.dseintegration.DataAccessHelper.createTable(DataAccessHelper.java:78)
at com.businessobjects.crystalreports.designer.dseintegration.TableCreationFactory.getNewObject(TableCreationFactory.java:116)
at com.businessobjects.crystalreports.designer.dseintegration.DSEDropHandler.drop(DSEDropHandler.java:103)
at org.eclipse.jface.util.DelegatingDropAdapter$3.run(DelegatingDropAdapter.java:211)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.util.DelegatingDropAdapter.drop(DelegatingDropAdapter.java:209)
at org.eclipse.swt.dnd.DNDListener.handleEvent(DNDListener.java:90)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
at org.eclipse.swt.dnd.DropTarget.Drop(DropTarget.java:456)
at org.eclipse.swt.dnd.DropTarget$3.method6(DropTarget.java:258)
at org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:119)
at org.eclipse.swt.internal.ole.win32.COM.DoDragDrop(Native Method)
at org.eclipse.swt.dnd.DragSource.drag(DragSource.java:363)
at org.eclipse.swt.dnd.DragSource.access$0(DragSource.java:289)
at org.eclipse.swt.dnd.DragSource$1.handleEvent(DragSource.java:172)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
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:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
</code>
<br/>
<br/>
<br/>
and:
<br/>
<br/>
<br/>
<code>
com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: Could not Add Object.
Unexpected database connector error---- Error code:-2147215362 Error code name:unknownError
at com.crystaldecisions.sdk.occa.report.lib.ReportSDKException.throwReportSDKException(ReportSDKException.java:65)
at com.businessobjects.crystalreports.designer.core.commands.ReportCommand.throwExecFailure(ReportCommand.java:253)
at com.businessobjects.crystalreports.designer.core.commands.ReportCommand.internalDoCommand(ReportCommand.java:126)
at com.businessobjects.crystalreports.designer.core.commands.ReportCommand.execute(ReportCommand.java:237)
at com.businessobjects.crystalreports.designer.uibase.gef.commands.CoreCommand.execute(CoreCommand.java:70)
at com.businessobjects.crystalreports.designer.dseintegration.DSEDropHandler.drop(DSEDropHandler.java:114)
at org.eclipse.jface.util.DelegatingDropAdapter$3.run(DelegatingDropAdapter.java:211)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.util.DelegatingDropAdapter.drop(DelegatingDropAdapter.java:209)
at org.eclipse.swt.dnd.DNDListener.handleEvent(DNDListener.java:90)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
at org.eclipse.swt.dnd.DropTarget.Drop(DropTarget.java:456)
at org.eclipse.swt.dnd.DropTarget$3.method6(DropTarget.java:258)
at org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:119)
at org.eclipse.swt.internal.ole.win32.COM.DoDragDrop(Native Method)
at org.eclipse.swt.dnd.DragSource.drag(DragSource.java:363)
at org.eclipse.swt.dnd.DragSource.access$0(DragSource.java:289)
at org.eclipse.swt.dnd.DragSource$1.handleEvent(DragSource.java:172)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
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:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
Caused by: com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: Unexpected database connector error---- Error code:-2147467259 Error code name:failed
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:2285)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:2305)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:737)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(SourceFile:167)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(SourceFile:529)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(SourceFile:527)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at com.businessobjects.crystalreports.designer.core.util.thread.ExecutorWithIdleProcessing$3.doWork(ExecutorWithIdleProcessing.java:182)
at com.businessobjects.crystalreports.designer.core.util.thread.AbstractCancellableRunnable.run(AbstractCancellableRunnable.java:69)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityTask.run(PriorityTask.java:75)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityCompoundCancellableRunnable.runSubtask(PriorityCompoundCancellableRunnable.java:187)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityProgressAwareRunnable.runSubtask(PriorityProgressAwareRunnable.java:90)
at com.businessobjects.crystalreports.designer.core.util.thread.PriorityCompoundCancellableRunnable.doWork(PriorityCompoundCancellableRunnable.java:144)
at com.businessobjects.crystalreports.designer.core.util.thread.AbstractCancellableRunnable.run(AbstractCancellableRunnable.java:69)
at com.businessobjects.crystalreports.designer.core.util.thread.ExecutorWithIdleProcessing$IdleTask.run(ExecutorWithIdleProcessing.java:320)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: com.crystaldecisions.reports.common.QueryEngineException: Unexpected database connector error
at com.crystaldecisions.reports.queryengine.Connection.a(SourceFile:1861)
at com.crystaldecisions.reports.queryengine.Connection.br(SourceFile:1800)
at com.crystaldecisions.reports.queryengine.Connection.bs(SourceFile:491)
at com.crystaldecisions.reports.queryengine.Connection.t1(SourceFile:2978)
at com.crystaldecisions.reports.queryengine.Table.u7(SourceFile:2403)
at com.crystaldecisions.reports.dataengine.datafoundation.AddDatabaseTableCommand.new(SourceFile:529)
at com.crystaldecisions.reports.common.CommandManager.a(SourceFile:71)
at com.crystaldecisions.reports.common.Document.a(SourceFile:203)
at com.businessobjects.reports.sdk.requesthandler.f.a(SourceFile:175)
at com.businessobjects.reports.sdk.requesthandler.DatabaseRequestHandler.byte(SourceFile:1079)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(SourceFile:1167)
at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(SourceFile:661)
... 16 more
Caused by: com.businessobjects.reports.jdbinterface.common.DBException: Unexpected database connector error
at com.crystaldecisions.reports.queryengine.driverImpl.jdbc.JDBCConnection.Open(Unknown Source)
at com.crystaldecisions.reports.queryengine.JDBConnectionWrapper.Open(SourceFile:123)
at com.crystaldecisions.reports.queryengine.Connection.br(SourceFile:1771)
... 26 more
</code>
<br/>
<br/>
<br/>
The error I initially posted resulted after I added the derby.jar as a driver file in addition to the derbyclient.jar, which I don't think is supposed to be done now that I am thinking about it, but I did it because of the class not found exception above. Is this perhaps simply a bug that it is trying to utilize the derby.jar embedded driver when the client driver should be used instead? Or am I doing something wrong myself?
<br/>
<br/>
Thank you for your help. -
Illegal argument error while performing hierarchy drill down using RESTful SDK
As per SAP Web Intelligence RESTful web service SDK User Guide, trying to perform a drill on a webi report using a POST req as below -
https://<serverName>:7555/biprws/raylight/v1/documents/<docID>/reports/<reportID>/driller/instructions
Req body -
<instruction type="Down">
<elementId><VTable ID></elementId>
<from>
<drillElement>
<id>DP0.DO6</id>
<filterValue><filter value></filterValue>
</drillElement>
</from>
<to>
<drillElement>
<id>DP0.DO7</id>
<hierarchyId>DP0.DH1</hierarchyId>
</drillElement>
</to>
</instruction>
Below is the error I am getting in the response. Looks like some issue with the Request body. please suggest.
400 Bad Request
<error>
<error_code>WSR 00102</error_code>
<message>Illegal argument</message>
<stack_trace>com.sap.webi.raylight.RaylightException: Illegal argument
at com.sap.webi.raylight.context.Messenger.createException(Messenger.java:57)
at com.sap.webi.raylight.actions.driller.DrillInstructionAction.throwInvalidBodyWithIllegalArgument(DrillInstructionAction.java:399)
at com.sap.webi.raylight.actions.driller.DrillInstructionAction.execute(DrillInstructionAction.java:130)
at sun.reflect.GeneratedMethodAccessor7014.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sap.webi.raylight.actions.ActionInvoker.invokeWith(ActionInvoker.java:123)
at com.sap.webi.raylight.actions.ActionDispatcher.invoke(ActionDispatcher.java:105)
at com.sap.webi.raylight.RaylightServiceDriller.drill(RaylightServiceDriller.java:345)
at sun.reflect.GeneratedMethodAccessor7013.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:164)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:91)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)
at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)
at com.sap.bip.rs.server.servlet.BIPServletController.invoke(BIPServletController.java:93)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.businessobjects.sdk.actionfilter.WorkflowFilter.doFilter(WorkflowFilter.java:45)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:761)
</stack_trace>
</error>hello Rekha,
1. First I guess that the red parts:
<instruction type="Down">
<elementId><VTable ID></elementId>
<from>
<drillElement>
<id>DP0.DO6</id>
<filterValue><filter value></filterValue>
</drillElement>
</from>
<to>
<drillElement>
<id>DP0.DO7</id>
<hierarchyId>DP0.DH1</hierarchyId>
</drillElement>
</to>
</instruction>
... are in your real workflow, effectively replaced by significant values.
2. then, thanks to the stack trace: this error should be thrown if DP0.DO6 is not used by <VTable ID>.
Can you please check with [GET application/xml] .../raylight/v1/documents/<docId>/reports/<reportId>/elements/<VTable ID> ?
3. Anyway, the error message thrown is totally not talkative and we'd better improve that. Which version are you using? 4.1 SP5 ?
Thanks and regards,
eric -
Hi,
We face an issue while migrating an SQL Server 2005 DB to Oracle 11.2. It fails during the process. I hope someone on the forum has seen this before and can give us some advice.
I use the latest version of SQL Developer with JRE included (3.2.20.09). The JDBC driver to connect to SQL Server 2005 is 1.2.0
Here are the steps we take in the Migration Workbench wizard:
I made an online extract of the SQL Server database.
Using the workbench in SQL Developer I created a migration repository in schema PDM_MIGRATION.
Next I start the migration, it captures the tables fine, but immediately after the start of the conversion I get a failed message without further explanations.
This is the content of the error xml:
<?xml version="1.0" encoding="windows-1252" standalone="no"?>
<log>
<record>
<date>2013-08-14T16:23:32</date>
<logger>oracle.dbtools.migration.workbench.core.MigrationLogResourceBundle</logger>
<level>SEVERE</level>
<class>oracle.dbtools.migration.workbench.core.logging.MigrationLogUtil</class>
<message>Ongeldig naampatroon.: PDM_MIGRATION .MIGR_FILTER</message>
<param>oracle.dbtools.migration.workbench.core.logging.LogInfo@4c12ab</param>
<exception>
<message>oracle.dbtools.migration.convert.ConvertException: Ongeldig naampatroon.: PDM_MIGRATION .MIGR_FILTER</message>
<frame>
<class>oracle.dbtools.migration.convert.ConverterWorker</class>
<line>1078</line>
</frame>
<frame>
<class>oracle.dbtools.migration.convert.ConverterWorker</class>
<line>316</line>
</frame>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>1002</line>
</frame>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>303</line>
</frame>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>205</line>
</frame>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>159</line>
</frame>
<frame>
<class>oracle.dbtools.raptor.backgroundTask.RaptorTask</class>
<line>193</line>
</frame>
<frame>
<class>java.util.concurrent.FutureTask$Sync</class>
<line>303</line>
</frame>
<frame>
<class>java.util.concurrent.FutureTask</class>
<line>138</line>
</frame>
<frame>
<class>oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask</class>
<line>515</line>
</frame>
<frame>
<class>java.util.concurrent.Executors$RunnableAdapter</class>
<line>441</line>
</frame>
<frame>
<class>java.util.concurrent.FutureTask$Sync</class>
<line>303</line>
</frame>
<frame>
<class>java.util.concurrent.FutureTask</class>
<line>138</line>
</frame>
<frame>
<class>java.util.concurrent.ThreadPoolExecutor$Worker</class>
<line>886</line>
</frame>
<frame>
<class>java.util.concurrent.ThreadPoolExecutor$Worker</class>
<line>908</line>
</frame>
<frame>
<class>java.lang.Thread</class>
<line>662</line>
</frame>
</exception>
</record>
<record>
<date>2013-08-14T16:23:32</date>
<logger>oracle.dbtools.migration.workbench.core.MigrationLogResourceBundle</logger>
<level>SEVERE</level>
<class>oracle.dbtools.migration.workbench.core.logging.MigrationLogUtil</class>
<message>Ongeldig naampatroon.: PDM_MIGRATION .MIGR_FILTER</message>
<param>oracle.dbtools.migration.convert.ConverterWorker.copyModel(ConverterWorker.java:1078)</param>
<param>oracle.dbtools.migration.convert.ConverterWorker.runConvert(ConverterWorker.java:316)</param>
<param>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask.doConvert(FullMigrateTask.java:1002)</param>
<param>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask.doMaskBasedActions(FullMigrateTask.java:303)</param>
<param>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask.doWork(FullMigrateTask.java:205)</param>
<param>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask.doWork(FullMigrateTask.java:159)</param>
<param>oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:193)</param>
<param>java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)</param>
<param>java.util.concurrent.FutureTask.run(FutureTask.java:138)</param>
<param>oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:515)</param>
<param>java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)</param>
<param>java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)</param>
<param>java.util.concurrent.FutureTask.run(FutureTask.java:138)</param>
<param>java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)</param>
<param>java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)</param>
<param>java.lang.Thread.run(Thread.java:662)</param>
<param>oracle.dbtools.migration.workbench.core.logging.LogInfo@5dc1bc</param>
<exception>
<message>oracle.dbtools.migration.convert.ConvertException: Ongeldig naampatroon.: PDM_MIGRATION .MIGR_FILTER</message>
<frame>
<class>oracle.dbtools.migration.convert.ConverterWorker</class>
<line>1078</line>
</frame>
<frame>
<class>oracle.dbtools.migration.convert.ConverterWorker</class>
<line>316</line>
</frame>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>1002</line>
</frame>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>303</line>
</frame>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>205</line>
</frame>
<frame>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<line>159</line>
</frame>
<frame>
<class>oracle.dbtools.raptor.backgroundTask.RaptorTask</class>
<line>193</line>
</frame>
<frame>
<class>java.util.concurrent.FutureTask$Sync</class>
<line>303</line>
</frame>
<frame>
<class>java.util.concurrent.FutureTask</class>
<line>138</line>
</frame>
<frame>
<class>oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask</class>
<line>515</line>
</frame>
<frame>
<class>java.util.concurrent.Executors$RunnableAdapter</class>
<line>441</line>
</frame>
<frame>
<class>java.util.concurrent.FutureTask$Sync</class>
<line>303</line>
</frame>
<frame>
<class>java.util.concurrent.FutureTask</class>
<line>138</line>
</frame>
<frame>
<class>java.util.concurrent.ThreadPoolExecutor$Worker</class>
<line>886</line>
</frame>
<frame>
<class>java.util.concurrent.ThreadPoolExecutor$Worker</class>
<line>908</line>
</frame>
<frame>
<class>java.lang.Thread</class>
<line>662</line>
</frame>
</exception>
</record>
<record>
<date>2013-08-14T16:23:32</date>
<logger>oracle.dbtools.migration.workbench.core.MigrationLogResourceBundle</logger>
<level>WARNING</level>
<class>oracle.dbtools.migration.workbench.core.ui.FullMigrateTask</class>
<message>Building converted model: FAILED : Database Migration : FAILED</message>
<param>oracle.dbtools.migration.workbench.core.logging.LogInfo@15a3779</param>
</record>
Does anybody know what this error means and what steps we should take to continue the migration?
I see the PDM_MIGRATION.MIGR_FILTER is a type.
Many thanks in advance,
KrisHi Wolfgang,
Thanks for your reply.
This is how the type MIGR_FILTER looks like:
create or replace
TYPE MIGR_FILTER IS OBJECT (
FILTER_TYPE INTEGER, -- Filter Types are 0-> ALL, 1->NAMELIST, 2->WHERE CLAUSE, 3->OBJECTID LIST
OBJTYPE VARCHAR2(40),
OBJECTIDS OBJECTIDLIST,
NAMES NAMELIST,
WHERECLAUSE VARCHAR2(1000));
I think the repository user has the correct privileges. This is the overview of privileges it has:
SQL> select * from dba_sys_privs where GRANTEE in ('PDM_MIGRATION') order by GRANTEE;
GRANTEE PRIVILEGE ADM
PDM_MIGRATION ALTER SESSION NO
PDM_MIGRATION CREATE CLUSTER NO
PDM_MIGRATION CREATE DATABASE LINK NO
PDM_MIGRATION CREATE PROCEDURE NO
PDM_MIGRATION CREATE SEQUENCE NO
PDM_MIGRATION CREATE SESSION NO
PDM_MIGRATION CREATE SYNONYM NO
PDM_MIGRATION CREATE TABLE NO
PDM_MIGRATION CREATE TRIGGER NO
PDM_MIGRATION CREATE VIEW NO
PDM_MIGRATION UNLIMITED TABLESPACE NO
SQL> select * from dba_role_privs where GRANTEE in ('PDM_MIGRATION') order by GRANTEE;
GRANTEE GRANTED_ROLE ADM DEF
PDM_MIGRATION CONNECT NO YES
PDM_MIGRATION RESOURCE NO YES
Best regards,
Kris -
Error in parallel exp-imp using ftp method
Hi,
We are doing migration of ERP system running on redhat linux 6 and sybase 15.7 .
Trying to do parallel export import using ftp method.
Here when we start the export monitor, it gives the below error.
Required system resources are missing or not available:
Structure of subdirectories in local export directory '/export/TRS_Mock_Export/ABAP' and FTP export directory '/usr/sap/TRQ/DVEBMGS00/TRS_Mock_Export/ABAP' on '<ip>' server is different.
But the structure is entirely same.
Even we have moved the export directory which got created after sapinst was run (before starting migmon) to the target server.
Below is a content of export monitor file .
export_monitor_cmd.properties
ftpCopy
dbType=SYB
exportDirs=/export/TRS_Mock_Export/ABAP
installDir=/media/sapinst_logs/Mock_Exp_Imp/sapinst_instdir/BS2010/ERP605/LM/COPY/SYB/EXP/CENTRAL/AS-ABAP/EXP/log_17_Apr_2015_05_03_53
ddlFile=/export/TRS_Mock_Export/ABAP/DB/DDLSYB_LRG.TPL
r3loadExe=/usr/sap/TRS/DVEBMGS00/exe/R3load
tskFiles=yes
dataCodepage=4103
jobNum=8
monitorTimeout=30
loadArgs=-stop_on_error
ftpHost=ip
ftpUser=user
ftpPassword=pw
ftpExportDirs=/usr/sap/TRQ/DVEBMGS00/TRS_Mock_Export/ABAP
ftpExchangeDir=/media/sbx_exchange_dir
ftpJobNum=3
trace=all
Please suggest.
Regards,
Amit Jana.Thanks for the steps Siddhesh.
ftp is working.
in the properties file for ftp user earlier gave a different user.
Now gave sidadm and this error is resolved.
Now facing a different issue.
In the properties file we gave 'server' in the beginning . This is only starting R3load processes but ftp transfer does not start.
Then gave 'ftp' below 'server' but got the below error.
Check below the file contents and error :
export_monitor_cmd.properties
server
ftp
dbType=SYB
exportDirs=/export/TRS_Mock_Export/ABAP
installDir=/media/sapinst_logs/Mock_Exp_Imp/sapinst_instdir/BS2010/ERP605/LM/COPY/SYB/EXP/CENTRAL/AS-ABAP/EXP/log_17_Apr_2015_05_03_53
ddlFile=/export/TRS_Mock_Export/ABAP/DB/DDLSYB_LRG.TPL
r3loadExe=/usr/sap/TRS/DVEBMGS00/exe/R3load
tskFiles=yes
dataCodepage=4103
jobNum=8
monitorTimeout=30
loadArgs=-stop_on_error
ftpHost=ip
ftpUser=user
ftpPassword=pw
ftpExportDirs=/usr/sap/TRQ/DVEBMGS00/TRS_Mock_Export/ABAP
ftpExchangeDir=/media/sbx_exchange_dir
ftpJobNum=3
trace=all
=======================================
TRACE: 2015-04-20 06:14:57 sun.net.ftp.impl.FtpClient readServerResponse
Server [/192.168.51.12:21] --> 230 Login successful.
ERROR: 2015-04-20 06:14:57 com.sap.inst.migmon.exp.ExportStandardTask run
Fatal exception during execution of the Export Monitor.
java.io.IOException: illegal filename for a PUT
at sun.net.www.protocol.ftp.FtpURLConnection.getOutputStream(FtpURLConnection.java:528)
at com.sap.inst.lib.ftp.FtpService.put(FtpService.java:160)
at com.sap.inst.migmon.exp.ExportExchangeTask.removeExportStatistics(ExportExchangeTask.java:277)
at com.sap.inst.migmon.exp.ExportStandardTask.doRun(ExportStandardTask.java:92)
at com.sap.inst.migmon.MigrationTask.run(MigrationTask.java:431)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:791)
INFO: 2015-04-20 06:14:57
Export Monitor is stopped. -
While using RTMPS to push large amounts of data to the flash player we've begun seeing deadlock occurring in the FlexClient on the server.
This is the usage:
Destination A:
pushes 1 message every 5 seconds containing an array of 500-5000 objects (each object ~300K)
Destination B:
pushes 1/message/second containing a small object (by small I mean it has at most 10 String or Number fields on them) onto a subtopic
pushes 1/message every 30 seconds containing a list of 10 key-value pairs onto a second subtopic
pushes 1/message every 30 seconds containing a list of 10 key-value pairs onto a third subtopic
JConsole shows the FlexClient blocks in push(). We attached a debugger and found the RTMP endpoint has a tcMessageQueue that has all of the messages in it. During normal execution this queue has 1 or 0 messages in it, but when the threads are blocking the queue grows.
The app can run for several minutes before getting into a blocked state. Other users are not blocked (they are using their own destinations). The flash player itself remains responsive, but simply isn't getting any data. I've looked at the BlazeDS source which shows synchronized blocks on "lock" and on "queue" but I can't see why either of those are blocking "forever".
This is all running LCDS 2.6.1 on both linux and windows servers. Does anybody have any similar issues? Any suggestions on what's causing the FlexClient to block?I tried to run it in a separate thread:
executionMgr = new ExecutionManangementRunnable(listener, process);
Callable callable = Executors.callable(executionMgr, null);
FutureTask future = new FutureTask(callable);
Thread thread = new Thread(future);
thread.setDaemon(true);
thread.start();
try {
future.get(1, TimeUnit.MINUTES);
} catch (InterruptedException e) {
// TODO handle catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO handle catch block
e.printStackTrace();
} catch (TimeoutException e) {
// TODO handle catch block
e.printStackTrace();
}I still get the same problem with main thread being blocked. Does anyone know why?'
//mikael -
Unchecked Exception using 1.5 Concurrent Libraries
Sorry to post this here, but it IS related to generics. I'm either doing something wrong, or the concurrent libraries are missing some methods in the ThreadPoolExecutor class.
I'll try and be brief. When I compile my multi-threaded application with lint on, I get the following error:
"TransactionsByStore.java:309: warning: [unchecked] unchecked conversion
found : java.util.concurrent.LinkedBlockingQueue
required: java.util.concurrent.BlockingQueue<java.lang.Runnable>
threadPool = new ThreadPoolExecutor(threadCount, threadCount, threadTimeout, TimeUnit.SECONDS, threadQueue);"
The problem is my "threadQueue" class. It is of type LinkedBlockingQueue<java.util.concurrent.Callable> since Callable allows the class to return something from the "call" method. It appears that most classes in the concurrent libraries prefers Callable classes over Runnable, but the constructor for a ThreadPoolExecutor appears to only accept a thread queue that holds Runnables. That doesn't seem correct.
Does anyone know if there is something that I am doing wrong here, or is this just a current limitation of the ThreadPoolExecutor class?
Thanks.The problem is my "threadQueue" class. It is of type
LinkedBlockingQueue<java.util.concurrent.Callable>
since Callable allows the class to return something
from the "call" method. It appears that most classes
in the concurrent libraries prefers Callable classes
over Runnable, but the constructor for a
ThreadPoolExecutor appears to only accept a thread
queue that holds Runnables. That doesn't seem
correct.
Does anyone know if there is something that I am
doing wrong here, or is this just a current
limitation of the ThreadPoolExecutor class?OK, so I just did some reading and I now better understand the context of your question:
* ThreadPoolExecutor is an ExecutorService, not just an Executor, so it handles Callables in addition to Runnables
* You're taking the slightly unusual step of constructing your own instance, presumably because you've determined none of the predefined ExecutorServices that the Executors factory class creates are suitable for your task?
* As you wish to use the ThreadPoolExecutor to execute Callables, you want to know why the constructor takes BlockingQueue<Runnable> rather than BlockingQueue<Callable>
So firstly, this question really has nothing to do with generics. Callable isn't a Runnable and as such there's no way you're ever going to be able to pass a BlockingQueue<Callable> into this method. Therefore it's a question about the design of the concurrency libraries. As such you'll probably get much better quality answers in a forum dedicated to that subject.
Having said that:
From what I see the ExecutorService.submit() methods that support Callables are all implemented in the AbstractExecutorService class that is the superclass for ThreadPoolExecutor.
So I read the source code for that class. Turns out every Callable passed to submit() is wrapped in a FutureTask, which is a class that imlements Future<V> and Runnable. This makes perfect sense if you think about it - given that this ExecutorService executes things asynchronously, clearly a Future<V> is required if you want to be able to actually get at the result.
Thus since Callables are wrapped in a class that's Runnable inside the ExecutorService, that's how it is able to handle Callables using a BlockingQueue<Runnable>.
So... is it important to you that the queue you pass in is a BlockingQueue<Callable> or can you simply make it a BlockingQueue<Runnable>?
You're never going to be able to constrain the type of the BlockingQueue to be anything stricter than Runnable, BTW. This is because the ThreadPoolExecutor executes Runnables as well as Callables, so if you were allowed to pass in a BlockingQueue<FutureResult> (for example) then it wouldn't work because the execute(Runnable) method wouldn't be able to add the Runnable to the queue without wrapping it in a spurious FutureResult. -
Failing to list files in remote directory using FTP
Since I've been using a proxy with FTP transport for pull files from a remote server during several months. Now it started to work just sometimes
####<Apr 11, 2011 1:33:50 PM BRT> <Error> <WliSbTransports> <WN7-6J6VJN1> <AdminServer> <pool-9-thread-1> <weblogic> <> <f2be7f1e2af484b9:-47b5d228:12f456185e7:-7ff1-000000000000002c> <1302539630973> <BEA-381602> <Error encountered while polling the resource for the service endpoint ProxyService$Infolease$1_0$ProxyServices$Contract$SendBookingConfirmationPS: com.bea.wli.sb.transports.TransportException: <user:davi_diogo>Unable to list files for directory:.
com.bea.wli.sb.transports.TransportException: <user:davi_diogo>Unable to list files for directory:.
at com.bea.wli.sb.transports.ftp.connector.FTPWorkPartitioningAgent.execute(FTPWorkPartitioningAgent.java:218)
at com.bea.wli.sb.transports.poller.TransportTimerListener.run(TransportTimerListener.java:75)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:139)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:909)
at java.lang.Thread.run(Thread.java:619)
I configured the service account with my own username, and I do make sure that I have the rights over my home\user directory. (I tested with WINSCP and putty).
I haven't done any modification to make this start happening.
following my proxy configuration:
protocol: ftp
URI: ftp://myhost/
mask: *.XML
but no success.
I said "sometimes" above because it works after ~15 tentatives. Perhaps this could be a issue in my remote server OS.
Has anyone faced this issue before?
Thanks in advance,
DavinodPlease refer -
Error encountered while polling the resource for the service endpoint
Regards,
Anuj -
TTL specified in put operation doesn't always work when using write-behind
I'm using a distributed cache with a write-behind cache store (see the config below). I found that when I do something like myCache.put(key, value, ttl), the entry survives the specified ttl. I tried doing the same with a distributed cache with a write-through cachestore and there everything does happen correctly.
Is this sort of operation not permitted in caches containing a write-behind cachestore? If not wouldn't it be better to throw an UnsupportedOperationException.
I created a small test to simulate this. I added values to the cache with a TTL of 1 to 10 seconds and found that the 10 second entries stayed in the cache.
Configuration used:
<?xml version="1.0"?>
<!DOCTYPE cache-config SYSTEM "cache-config.dtd">
<cache-config>
<caching-scheme-mapping>
<cache-mapping>
<cache-name>TTL_TEST</cache-name>
<scheme-name>testScheme</scheme-name>
</cache-mapping>
</caching-scheme-mapping>
<caching-schemes>
<distributed-scheme>
<scheme-name>testScheme</scheme-name>
<service-name>testService</service-name>
<backing-map-scheme>
<read-write-backing-map-scheme>
<internal-cache-scheme>
<local-scheme>
<service-name>testBackLocalService</service-name>
</local-scheme>
</internal-cache-scheme>
<cachestore-scheme>
<class-scheme>
<scheme-name>testBackStore</scheme-name>
<class-name>TTLTestServer$TestCacheStore</class-name>
</class-scheme>
</cachestore-scheme>
<write-delay>3s</write-delay>
</read-write-backing-map-scheme>
</backing-map-scheme>
<local-storage>true</local-storage>
<autostart>true</autostart>
</distributed-scheme>
</caching-schemes>
</cache-config>Code of test:
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import org.joda.time.DateTime;
import org.joda.time.Duration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StopWatch;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import com.google.common.collect.Lists;
import com.tangosol.net.CacheFactory;
import com.tangosol.net.NamedCache;
import com.tangosol.net.cache.CacheStore;
@Test
public class TTLTestServer
private static final int RETRIES = 5;
private static final Logger logger = LoggerFactory.getLogger( TTLTestServer.class );
private NamedCache m_cache;
* List of Time-To-Lives in seconds to check
private final List<Integer> m_listOfTTLs = Lists.newArrayList(1, 3, 5, 10);
* Test is done in separate threads to speed up the test
private final ExecutorService m_executorService = Executors.newCachedThreadPool();
@BeforeClass
public void setup()
logger.info("Getting the cache");
m_cache = CacheFactory.getCache("TTL_TEST");
public static class TestCacheStore implements CacheStore
public void erase(Object arg0)
public void eraseAll(Collection arg0)
public void store(Object arg0, Object arg1)
public void storeAll(Map arg0)
public Object load(Object arg0)
{return null;}
public Map loadAll(Collection arg0)
{return null;}
public void testTTL() throws InterruptedException, ExecutionException
logger.info("Starting TTL test");
List<Future<StopWatch>> futures = Lists.newArrayList();
for (final Integer ttl : m_listOfTTLs)
futures.add(m_executorService.submit(new Callable()
public Object call() throws Exception
StopWatch stopWatch= new StopWatch("TTL=" + ttl);
for (int retry = 0; retry < RETRIES; retry++)
logger.info("Adding a value in cache for TTL={} in try={}", ttl, retry+1);
stopWatch.start("Retry="+retry);
m_cache.put(ttl, null, ttl*1000);
waitUntilNotInCacheAnymore(ttl, retry);
stopWatch.stop();
return stopWatch;
private void waitUntilNotInCacheAnymore(final Integer ttl, final int currentTry) throws InterruptedException
DateTime startTime = new DateTime();
long maxMillisToWait = ttl*2*1000; //wait max 2 times the time of the ttl
while(m_cache.containsKey(ttl) )
Duration timeTaken = new Duration(startTime, new DateTime());
if(timeTaken.getMillis() > maxMillisToWait)
throw new RuntimeException("Already waiting " + timeTaken + " for ttl=" + ttl + " and retry=" + currentTry);
Thread.sleep(1000);
logger.info("Waiting until all futures are finished");
m_executorService.shutdown();
logger.info("Getting results from futures");
for (Future<StopWatch> future : futures)
StopWatch sw = future.get();
logger.info(sw.prettyPrint());
}Failure message:
FAILED: testTTL
java.util.concurrent.ExecutionException: java.lang.RuntimeException: Already waiting PT20.031S for ttl=10 and retry=0
at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at TTLTestServer.testTTL(TTLTestServer.java:159)
Caused by: java.lang.RuntimeException: Already waiting PT20.031S for ttl=10 and retry=0
at TTLTestServer$1.waitUntilNotInCacheAnymore(TTLTestServer.java:139)
at TTLTestServer$1.call(TTLTestServer.java:122)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)I'm using Coherence 3.4.2.
Best regards
JanHi, still no luck. However, I noticed that setting the write-delay value of the write-behind store to 0s or 1s, solved the problem. It only starts to given me "the node has already been removed" excpetions once the write-delay value is 2s or higher.
You can find the coherence-cache-config.xml below:
<?xml version="1.0"?>
<!DOCTYPE cache-config SYSTEM "cache-config.dtd">
<cache-config>
<caching-scheme-mapping>
<cache-mapping>
<cache-name>TTL_TEST</cache-name>
<scheme-name>testScheme</scheme-name>
</cache-mapping>
</caching-scheme-mapping>
<caching-schemes>
<distributed-scheme>
<scheme-name>testScheme</scheme-name>
<service-name>testService</service-name>
<backing-map-scheme>
<read-write-backing-map-scheme>
<internal-cache-scheme>
<local-scheme>
<service-name>testBackLocalService</service-name>
</local-scheme>
</internal-cache-scheme>
<cachestore-scheme>
<class-scheme>
<scheme-name>testBackStore</scheme-name>
<class-name>TTLTestServer$TestCacheStore</class-name>
</class-scheme>
</cachestore-scheme>
<write-delay>2s</write-delay>
</read-write-backing-map-scheme>
</backing-map-scheme>
<local-storage>true</local-storage>
<autostart>true</autostart>
</distributed-scheme>
</caching-schemes>
</cache-config>You can find the test program below:
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.joda.time.DateTime;
import org.joda.time.Duration;
import org.springframework.util.StopWatch;
import com.tangosol.net.CacheFactory;
import com.tangosol.net.NamedCache;
import com.tangosol.net.cache.CacheStore;
public class TTLTestServer
private static final int RETRIES = 5;
private NamedCache m_cache;
* List of Time-To-Lives in seconds to check
private final List<Integer> m_listOfTTLs = new ArrayList<Integer>();
* @param args
* @throws Exception
public static void main( String[] args ) throws Exception
new TTLTestServer().test();
* Empty CacheStore
* @author jbe
public static class TestCacheStore implements CacheStore
public void erase(Object arg0)
@SuppressWarnings ( "unchecked" )
public void eraseAll(Collection arg0)
public void store(Object arg0, Object arg1)
@SuppressWarnings ( "unchecked" )
public void storeAll(Map arg0)
public Object load(Object arg0)
{return null;}
@SuppressWarnings ( "unchecked" )
public Map loadAll(Collection arg0)
{return null;}
* Sets up and executes the test setting values in a cache with a given time-to-live value and waiting for the value to disappear.
* @throws Exception
private void test() throws Exception
System.out.println(new DateTime() + " - Setting up TTL test");
m_cache = CacheFactory.getCache("TTL_TEST");
m_listOfTTLs.add( 1 );
m_listOfTTLs.add( 3 );
m_listOfTTLs.add( 5 );
m_listOfTTLs.add( 10);
System.out.println(new DateTime() + " - Starting TTL test");
for (final Integer ttl : m_listOfTTLs)
StopWatch sw = doTest(ttl);
System.out.println(sw.prettyPrint());
* Adds a value to the cache with the time-to-live as given by the ttl parameter and waits until it's removed from the cache.
* Repeats this {@link #RETRIES} times
* @param ttl
* @return
* @throws Exception
private StopWatch doTest(Integer ttl) throws Exception
StopWatch stopWatch= new StopWatch("TTL=" + ttl);
for (int retry = 0; retry < RETRIES; retry++)
System.out.println(new DateTime() + " - Adding a value in cache for TTL=" + ttl + " in try= " + (retry+1));
stopWatch.start("Retry="+retry);
m_cache.put(ttl, null, ttl*1000);
waitUntilNotInCacheAnymore(ttl, retry);
stopWatch.stop();
return stopWatch;
* Wait until the value for the given ttl is not in the cache anymore
* @param ttl
* @param currentTry
* @throws InterruptedException
private void waitUntilNotInCacheAnymore(final Integer ttl, final int currentTry) throws InterruptedException
DateTime startTime = new DateTime();
long maxMillisToWait = ttl*2*1000; //wait max 2 times the time of the ttl
while(m_cache.containsKey(ttl) )
Duration timeTaken = new Duration(startTime, new DateTime());
if(timeTaken.getMillis() > maxMillisToWait)
throw new RuntimeException("Already waiting " + timeTaken + " for ttl=" + ttl + " and retry=" + currentTry);
Thread.sleep(1000);
}You can find the output below:
2009-12-03T11:50:04.584+01:00 - Setting up TTL test
2009-12-03 11:50:04.803/0.250 Oracle Coherence 3.5.2/463p2 <Info> (thread=main, member=n/a): Loaded operational configuration from resource "jar:file:/C:/Temp/coherence3.5.2/coherence-java-v3.5.2b463-p1_2/coherence/lib/coherence.jar!/tangosol-coherence.xml"
2009-12-03 11:50:04.803/0.250 Oracle Coherence 3.5.2/463p2 <Info> (thread=main, member=n/a): Loaded operational overrides from resource "jar:file:/C:/Temp/coherence3.5.2/coherence-java-v3.5.2b463-p1_2/coherence/lib/coherence.jar!/tangosol-coherence-override-dev.xml"
2009-12-03 11:50:04.803/0.250 Oracle Coherence 3.5.2/463p2 <D5> (thread=main, member=n/a): Optional configuration override "/tangosol-coherence-override.xml" is not specified
2009-12-03 11:50:04.803/0.250 Oracle Coherence 3.5.2/463p2 <D5> (thread=main, member=n/a): Optional configuration override "/custom-mbeans.xml" is not specified
Oracle Coherence Version 3.5.2/463p2
Grid Edition: Development mode
Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
2009-12-03 11:50:04.943/0.390 Oracle Coherence GE 3.5.2/463p2 <Info> (thread=main, member=n/a): Loaded cache configuration from "file:/C:/jb/workspace3.5/TTLTest/target/classes/coherence-cache-config.xml"
2009-12-03 11:50:05.318/0.765 Oracle Coherence GE 3.5.2/463p2 <D5> (thread=Cluster, member=n/a): Service Cluster joined the cluster with senior service member n/a
2009-12-03 11:50:08.568/4.015 Oracle Coherence GE 3.5.2/463p2 <Info> (thread=Cluster, member=n/a): Created a new cluster "cluster:0xD3FB" with Member(Id=1, Timestamp=2009-12-03 11:50:05.193, Address=172.16.44.32:8088, MachineId=36896, Location=process:11848, Role=TTLTestServerTTLTestServer, Edition=Grid Edition, Mode=Development, CpuCount=2, SocketCount=2) UID=0xAC102C20000001255429380990201F98
2009-12-03 11:50:08.584/4.031 Oracle Coherence GE 3.5.2/463p2 <D5> (thread=Invocation:Management, member=1): Service Management joined the cluster with senior service member 1
2009-12-03 11:50:08.756/4.203 Oracle Coherence GE 3.5.2/463p2 <D5> (thread=DistributedCache:testService, member=1): Service testService joined the cluster with senior service member 1
2009-12-03T11:50:08.803+01:00 - Starting TTL test
2009-12-03T11:50:08.818+01:00 - Adding a value in cache for TTL=1 in try= 1
2009-12-03T11:50:09.818+01:00 - Adding a value in cache for TTL=1 in try= 2
Exception in thread "main" (Wrapped: Failed request execution for testService service on Member(Id=1, Timestamp=2009-12-03 11:50:05.193, Address=172.16.44.32:8088, MachineId=36896, Location=process:11848, Role=TTLTestServerTTLTestServer)) java.lang.IllegalStateException: the node has already been removed
at com.tangosol.util.Base.ensureRuntimeException(Base.java:293)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.tagException(Grid.CDB:36)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache.onContainsKeyRequest(DistributedCache.CDB:41)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$ContainsKeyRequest.run(DistributedCache.CDB:1)
at com.tangosol.coherence.component.net.message.requestMessage.DistributedCacheKeyRequest.onReceived(DistributedCacheKeyRequest.CDB:12)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onMessage(Grid.CDB:9)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onNotify(Grid.CDB:136)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache.onNotify(DistributedCache.CDB:3)
at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalStateException: the node has already been removed
at com.tangosol.util.AbstractSparseArray$Crawler.remove(AbstractSparseArray.java:1274)
at com.tangosol.net.cache.OldCache.evict(OldCache.java:580)
at com.tangosol.net.cache.OldCache.containsKey(OldCache.java:171)
at com.tangosol.net.cache.ReadWriteBackingMap.containsKey(ReadWriteBackingMap.java:597)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache.onContainsKeyRequest(DistributedCache.CDB:25)
... 7 more
2009-12-03 11:50:10.834/6.281 Oracle Coherence GE 3.5.2/463p2 <D4> (thread=ShutdownHook, member=1): ShutdownHook: stopping cluster node
2009-12-03 11:50:10.834/6.281 Oracle Coherence GE 3.5.2/463p2 <D5> (thread=Cluster, member=1): Service Cluster left the clusterBest regards
Jan -
Web Service Client, BindException, Address already in use, saaj.SOAPExcepti
Hello,
Am caught up with an error and i can't get past it, need some help here.
My application is a batch processing web service client, reads some input rows, sends web service requets, processes the responses and logs it.
The application runs well in normal mode, but under load(more thread count), I get this wierd error and I can't make it go away.
java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Message send failed
Caused by: java.net.BindException: Address already in use: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
I have properly closed the connections after each web service calls, but it still says Address in use. Please refer below for the complete stack trace and a piece of the code. Am using SAAJ and JWSDP and am not using AXIS api. I have searched the web but couldn't find any solutions.
This is not an error that server is not closing connections properly as I was able to test with SOAPUI and LoadRunner with even higher threads and it ran without problems. SOAPUI and LoadRunner scripts were executed from the same client machine as my application uses. Please help.
For each inputrow
SOAPConnection connection = null;
try
SOAPConnectionFactory soapConnFactory = SOAPConnectionFactory.newInstance();
connection = soapConnFactory.createConnection();
SOAPMessage request = getRequest(inputRow);
SOAPMessage response = connection.call(request, "http://<<server>>:<<port no>>/Domain/Services/Mgmt");
finally
if (connection != null)
connection.close();
}catch(SOAPException se){
System.out.println("Error while closing connection. " + se.getMessage());
connection = null;
} // End of for loop
Stack Trace:
java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptio
nImpl: Message send failed
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOA
PConnection.java:121)
at ClientImpl.getResponse(ClientImpl.java:440)
at input.InputSampler$MyCallable.call(Sampler.java:63)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Message send failed
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOA
PConnection.java:325)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedP
ost.run(HttpSOAPConnection.java:150)
... 12 more
Caused by: java.net.BindException: Address already in use: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown
Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Sour
ce)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown S
ource)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOA
PConnection.java:282)
Is there something like connection pooling for web services, is that the answer to this issue, if yes, please let me know where i should start.
Thanks
DevMove server socket creation out of while loop. You don't need to create new server socket every time.
-
Using 4.0.2, strange error message when trying to created a webi rep
Hi all
I'm getting the error message Protocol message end-group tag did not match expected tag. (WIS 00000) while trying to create a webi report using a unx (Designer Information Design tool)
full error test below
This unx is using a 7.1 BW cube, and from the unx toll all looks to be ok
com.businessobjects.sdk.core.server.CommunicationException$UnexpectedServerException: Protocol message end-group tag did not match expected tag.
at com.businessobjects.sdk.core.exception.ExceptionBuilder.make(ExceptionBuilder.java:144)
at com.businessobjects.sdk.core.exception.ExceptionBuilder.make(ExceptionBuilder.java:101)
at com.businessobjects.sdk.core.server.common.CommonRequestHandler.afterProcessing(CommonRequestHandler.java:127)
at com.businessobjects.sdk.core.server.internal.AbstractServer.processIt(AbstractServer.java:178)
at com.businessobjects.sdk.core.server.internal.AbstractServer.process(AbstractServer.java:133)
at com.businessobjects.sdk.core.server.internal.InstanceServer.process(InstanceServer.java:94)
at com.sap.sl.sdk.services.util.ServerRequestProcessor.processServerRequest(ServerRequestProcessor.java:49)
at com.sap.sl.sdk.dataprovider.service.DataProviderServiceImpl.processDataProviderCommand(DataProviderServiceImpl.java:419)
at com.sap.sl.sdk.dataprovider.service.DataProviderServiceImpl.processDataProviderCommand(DataProviderServiceImpl.java:431)
at com.sap.sl.sdk.dataprovider.service.DataProviderServiceImpl.run(DataProviderServiceImpl.java:192)
at com.sap.sl.sdk.workspace.service.WorkspaceServiceImpl.run(WorkspaceServiceImpl.java:346)
at com.sap.webi.ui.tasks.workflows.RunWorkspaceTask.doIt(RunWorkspaceTask.java:74)
at com.sap.webi.ui.tasks.workflows.RunWorkspaceTask.doIt(RunWorkspaceTask.java:11)
at com.sap.webi.toolkit.ui.tasks.WebITask.doInBackground(WebITask.java:113)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: com.businessobjects.sdk.core.server.ServerException: Protocol message end-group tag did not match expected tag.
at com.businessobjects.sdk.core.server.common.CommonRequestHandler.newServerException(CommonRequestHandler.java:260)
at com.businessobjects.sdk.core.server.common.CommonRequestHandler.createAllServerExceptions(CommonRequestHandler.java:238)
at com.businessobjects.sdk.core.server.common.CommonRequestHandler.afterProcessing(CommonRequestHandler.java:121)
... 18 moreYou can still create universe, just not UNX universe.
If you have upgraded Bi4.0 to Sp01 or SP02 - in IDT it will not let you do that.
As for docs :
/people/ingo.hilgefort/blog/2011/03/24/sap-integration-update-9--should-you-start-with-sap-businessobjects-40-or-wait-for-41
http://smartdirectory.sap.corp:3080/Assets/asset.epx?id=519f2955-0b47-4a0f-81d1-84e8e5303e5e
http://www.asugnews.com/2011/02/22/sap-businessobjects-bw-integration-to-get-easier-in-bi-4-0/
https://cw.sdn.sap.com/cw/servlet/JiveServlet/download/139619-38-87308/SDN%20-%20Best%
/people/ingo.hilgefort/blog/2011/02/10/sap-integration-update-part-5--web-intelligence-40-connecting-to-bex-queries -
Unable to Create a Content Repository Connection using 'socketssl'
I'm trying to create a Content Repository Connection with RIDC Socket Type as "socketssl".
I am not able to create the connection. The following are the parameters mentioned in Jdeveloper
RIDC Socket Type : socketssl
Server Host Name : <ip of the content server>
Content Server Listener Port : 54444 (incoming SSL provider is configured in the content server)
KeyStore File Location : patch of the client keystore
KeyStore Password : password
Private Key Alias : PrivateKey Alias Name
Private Key password : password
I get the below error. However I am able to use RIDC to connect to UCM using socketssl. This problem is seen only with jdeveloper.
SEVERE: Submission[id=1, service=oracle.webcenter.content.jcr.login, resource=ucm] caught exception running task
javax.jcr.RepositoryException: oracle.stellent.ridc.protocol.ProtocolException: java.net.SocketException: Software caused connection abort: recv failed
at oracle.jcr.impl.ExceptionFactory.repository(ExceptionFactory.java:161)
at oracle.stellent.jcr.IdcPersistenceManagerFactory.createPersistenceManager(IdcPersistenceManagerFactory.java:185)
at oracle.jcr.impl.OracleRepositoryImpl.login(OracleRepositoryImpl.java:444)
at oracle.vcr.jam.LoginTask.call(LoginTask.java:68)
at oracle.vcr.jam.LoginTask.call(LoginTask.java:29)
at oracle.webcenter.concurrent.Submission$2.run(Submission.java:484)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
at oracle.webcenter.concurrent.Submission.runAsPrivileged(Submission.java:498)
at oracle.webcenter.concurrent.Submission.run(Submission.java:424)
at oracle.webcenter.concurrent.Submission$SubmissionFutureTask.run(Submission.java:888)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at oracle.webcenter.concurrent.ModifiedThreadPoolExecutor$Worker.runTask(ModifiedThreadPoolExecutor.java:657)
at oracle.webcenter.concurrent.ModifiedThreadPoolExecutor$Worker.run(ModifiedThreadPoolExecutor.java:682)
at java.lang.Thread.run(Thread.java:662)
Caused by: oracle.stellent.ridc.protocol.ProtocolException: java.net.SocketException: Software caused connection abort: recv failed
at oracle.stellent.ridc.protocol.intradoc.HdaProtocol.readResponse(HdaProtocol.java:254)
at oracle.stellent.ridc.IdcClient.sendRequest(IdcClient.java:165)
at oracle.stellent.jcr.IdcPersistenceManagerFactory.createPersistenceManager(IdcPersistenceManagerFactory.java:171)
... 15 more
Caused by: java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:798)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.waitForClose(SSLSocketImpl.java:1523)
at com.sun.net.ssl.internal.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:103)
at com.sun.net.ssl.internal.ssl.Handshaker.sendChangeCipherSpec(Handshaker.java:689)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.sendChangeCipherAndFinish(ClientHandshaker.java:985)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:904)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:238)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:753)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
at oracle.stellent.ridc.common.util.StreamUtil.readRawLine(StreamUtil.java:227)
at oracle.stellent.ridc.common.util.StreamUtil.readLine(StreamUtil.java:254)
at oracle.stellent.ridc.protocol.intradoc.HdaProtocol.readHeaders(HdaProtocol.java:453)
at oracle.stellent.ridc.protocol.intradoc.HdaProtocol.readResponse(HdaProtocol.java:215)
... 17 more
31/10/2011 2:14:29 PM oracle.webcenter.content.internal.dt.connection.wizard.AdapterConfigPanel validateConfig
WARNING: Invalid Configuration Parameters
javax.jcr.RepositoryException: oracle.stellent.ridc.protocol.ProtocolException: java.net.SocketException: Software caused connection abort: recv failed
at oracle.jcr.impl.ExceptionFactory.repository(ExceptionFactory.java:161)
at oracle.stellent.jcr.IdcPersistenceManagerFactory.createPersistenceManager(IdcPersistenceManagerFactory.java:185)
at oracle.jcr.impl.OracleRepositoryImpl.login(OracleRepositoryImpl.java:444)
at oracle.vcr.jam.LoginTask.call(LoginTask.java:68)
at oracle.vcr.jam.LoginTask.call(LoginTask.java:29)
at oracle.webcenter.concurrent.Submission$2.run(Submission.java:484)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
at oracle.webcenter.concurrent.Submission.runAsPrivileged(Submission.java:498)
at oracle.webcenter.concurrent.Submission.run(Submission.java:424)
at oracle.webcenter.concurrent.Submission$SubmissionFutureTask.run(Submission.java:888)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at oracle.webcenter.concurrent.ModifiedThreadPoolExecutor$Worker.runTask(ModifiedThreadPoolExecutor.java:657)
at oracle.webcenter.concurrent.ModifiedThreadPoolExecutor$Worker.run(ModifiedThreadPoolExecutor.java:682)
at java.lang.Thread.run(Thread.java:662)
Caused by: oracle.stellent.ridc.protocol.ProtocolException: java.net.SocketException: Software caused connection abort: recv failed
at oracle.stellent.ridc.protocol.intradoc.HdaProtocol.readResponse(HdaProtocol.java:254)
at oracle.stellent.ridc.IdcClient.sendRequest(IdcClient.java:165)
at oracle.stellent.jcr.IdcPersistenceManagerFactory.createPersistenceManager(IdcPersistenceManagerFactory.java:171)
... 15 more
Caused by: java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:798)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.waitForClose(SSLSocketImpl.java:1523)
at com.sun.net.ssl.internal.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:103)
at com.sun.net.ssl.internal.ssl.Handshaker.sendChangeCipherSpec(Handshaker.java:689)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.sendChangeCipherAndFinish(ClientHandshaker.java:985)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:904)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:238)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:753)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
at oracle.stellent.ridc.common.util.StreamUtil.readRawLine(StreamUtil.java:227)
at oracle.stellent.ridc.common.util.StreamUtil.readLine(StreamUtil.java:254)
at oracle.stellent.ridc.protocol.intradoc.HdaProtocol.readHeaders(HdaProtocol.java:453)
at oracle.stellent.ridc.protocol.intradoc.HdaProtocol.readResponse(HdaProtocol.java:215)
... 17 more
Please let me know the valid Configuration Parameters?
Thanks,
Manjunath
Edited by: 890922 on Oct 30, 2011 8:25 PMYou need to supply the "Key Store Location", "Key Store Password", "Private Key Alias" and "Private Key Password' to use socketssl.
Also please make sure that the content server has enabled "Use SSL". You can configure it using the enterprise manager.
Maybe you are looking for
-
MacBook Pro Phantom Audio Problem - Audio decreases settings unchanged
I'm having a very strange issue with a MacBook Pro. Over the course of a presentation the audio output will slowly decrease until it is almost inaudible. I'm running the machine into a sounds system and I can turn up the MBP volume to compensate unti
-
Reorganize function will not allow "select rows that match"
I'm trying to sort data in a sheet the same way excel lets you sort by using "filter" I'm told that using the Reorganize function will allow me to do this especially if I select the "select rows that match" options. The only problem is that that opti
-
Vista slow when Roxio Media Manager installed
Hi guys, I have a Blacbkberry Bold and installed the desktop software with media manager straight out the box. It all works great only when vista is loading up it is incredibly slow. My antivirus (Mcaffee) and internet connection status in the taskb
-
What is the weblogic process or file opened with udp port?
I'm running weblogic 8.1 on linux AS 3.0, whenever I bring it up, there is a process that listens on udp, although my weblogic runs on default tcp port 7001. What file or process opened with up port (32770)? I'm curious to know whats running with udp
-
How do I disable iPad2-Backup?
How do I disable iPad2-Backup? Especially when having stored lot's of appss/music the automatic backup is most annoying. How can it be disabled?