How to fail messsages when timeout exception is thrown in BPM?
Hi
In my BPM, if the time out exception is thrown in BPM, in SXMB_MONI, all the inbound messages' staus is 'processed sucessfully' ? How can I make the message fail? With a red flag or anything indicating exception?
In my design I used deadline branch to throw time out exception.And in the exception branch I used control step to cancel the process.
Hi,
In my design I used deadline branch to throw time out exception.And in the exception branch I used control step to cancel the process
If this is what you have designed then increasing the timeout using the above mentioned blogs doesn't seem to be logical:) (BPM will throw the error when the deadline is meet....can't understand how by increasing timeout will help you)....instead of increasing the timeout you can increase the time limit mentioned in the deadline branch itself to ensure that your message will be processed in that particular time limit.
Since you have reached the timeout it means that desired message processing has failed so better you raise an alert instead of going for a increase in timeout....increasing timeout decreases performance...
Regards,
Abhishek.
Similar Messages
-
How can the eclipse debugger break in the code when an exception is thrown
Is there a way in eclipse to break into the bebugger when an exception is thrown in debug mode like Visual Studio 2003 or 2005?
ThanksFor 3.x, select "Add Java Exception Breakpoint" from the "Run" menu.
Check "Caught" to break even if your code handles the exception, "Uncaught" to break when your code doesn't handle the exception. -
How to get a 'when others' exception raised.
the 'when others' exception is raised usualy after a error occurs, but when does this actually occur? could some1 give an example??
usually some error occurs and then a inbuilt exception is raised. but 'others' exception never seems to take place?The OTHERS handler takes control when the exception is not handled by any previous handlers.
Here, we'll try to divide by zero. The no_data_found handler does not handle this error so control passes to the OTHERS section:
sql>declare
2 n number;
3 begin
4 n := 1/0;
5 exception
6 when no_data_found then
7 dbms_output.put_line( 'no data found exception' );
8 when others then
9 dbms_output.put_line( 'when others exception' );
10 end;
11 /
when others exception
PL/SQL procedure successfully completed.Now, we'll try an operation which will raise the no_data_found exception. Here the ndf handler does handle the error and control never passes to the OTHERS section:
sql>declare
2 n number;
3 begin
4 select 0
5 into n
6 from dual
7 where dummy is null;
8 exception
9 when no_data_found then
10 dbms_output.put_line( 'no data found exception' );
11 when others then
12 dbms_output.put_line( 'when others exception' );
13 end;
14 /
no data found exception
PL/SQL procedure successfully completed. -
Populating OUT parameters when TOO_MANY_ROWS exception is thrown
When I was trying to write code to test out today's PL/SQL challenge quiz, the behavior appears to depend on the table being queried. I can't figure out what attribute of the table drives the behavior (or if there is a different explanation for the behavior).
The quiz is testing what happens when a procedure does a SELECT INTO an OUT parameter and a TOO_MANY_ROWS exception is thrown. The intent is to show that even though the behavior is technically undefined, what actually happens is that the OUT parameter is populated with the first row that is selected (obviously, you would never write code that depends on this behavior-- this is solely an academic exercise). The demonstration code works as expected
CREATE TABLE plch_emp ( emp_name VARCHAR2(100) );
INSERT INTO plch_emp VALUES ('Jones');
INSERT INTO plch_emp VALUES ('Smith');
COMMIT;
CREATE OR REPLACE PROCEDURE plch_get
(out_name OUT plch_emp.emp_name%TYPE) IS
BEGIN
SELECT emp_name
INTO out_name
FROM plch_emp
ORDER BY emp_name;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('A:' || out_name);
END;
What will be displayed after executing the following block:
DECLARE
l_name plch_emp.emp_name%TYPE;
BEGIN
plch_get(l_name);
dbms_output.put_line('B:' || l_name);
END;
/and outputs
A:Jones
B:JonesWhen I replicate the logic while hitting the EMP table, the PLCH_EMP table, and the newly created EMP2 table, however, I get different behavior for the EMP and EMP2 tables. The procedure that queries PLCH_EMP works as expected but the OUT parameter is NULL when either EMP or EMP2 are created. Any idea what causes the behavior to differ?
select *
from v$version;
create table emp2
as
select *
from emp;
create or replace procedure p1( p_out out varchar2 )
is
begin
select emp_name
into p_out
from plch_emp
order by emp_name;
exception
when others then
dbms_output.put_line( 'P1 A:' || p_out );
end;
create or replace procedure p2( p_out out varchar2 )
is
begin
select ename
into p_out
from emp
order by ename;
exception
when others then
dbms_output.put_line( 'P2 A:' || p_out );
end;
create or replace procedure p3( p_out out varchar2 )
is
begin
select ename
into p_out
from emp2
order by ename;
exception
when others then
dbms_output.put_line( 'P3 A:' || p_out );
end;
declare
l_ename varchar2(100);
begin
p1( l_ename );
dbms_output.put_line( 'P1 B:' || l_ename );
p2( l_ename );
dbms_output.put_line( 'P2 B:' || l_ename );
p3( l_ename );
dbms_output.put_line( 'P3 B:' || l_ename );
end;
SQL> select *
2 from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL>
SQL> create table emp2
2 as
3 select *
4 from emp;
Table created.
SQL>
SQL> create or replace procedure p1( p_out out varchar2 )
2 is
3 begin
4 select emp_name
5 into p_out
6 from plch_emp
7 order by emp_name;
8 exception
9 when others then
10 dbms_output.put_line( 'P1 A:' || p_out );
11 end;
12 /
Procedure created.
SQL>
SQL> create or replace procedure p2( p_out out varchar2 )
2 is
3 begin
4 select ename
5 into p_out
6 from emp
7 order by ename;
8 exception
9 when others then
10 dbms_output.put_line( 'P2 A:' || p_out );
11 end;
12 /
Procedure created.
SQL>
SQL> create or replace procedure p3( p_out out varchar2 )
2 is
3 begin
4 select ename
5 into p_out
6 from emp2
7 order by ename;
8 exception
9 when others then
10 dbms_output.put_line( 'P3 A:' || p_out );
11 end;
12 /
Procedure created.
SQL>
SQL> declare
2 l_ename varchar2(100);
3 begin
4 p1( l_ename );
5 dbms_output.put_line( 'P1 B:' || l_ename );
6
7 p2( l_ename );
8 dbms_output.put_line( 'P2 B:' || l_ename );
9
10 p3( l_ename );
11 dbms_output.put_line( 'P3 B:' || l_ename );
12
13 end;
14 /
P1 A:Jones
P1 B:Jones
P2 A:
P2 B:
P3 A:
P3 B:
PL/SQL procedure successfully completed.JustinBilly Verreynne wrote:
So we can then reasonably assume that the test or environment itself somehow interferes with the results? After all, the very same cursor is executed and the same PL/SQL engine uses that cursor interface.Clearly, there is something in my environment that is wonky. It just bugs me that I can't figure out what that variable is.
Your test was done as a single anonymous PL/SQL block. Which means each proc that was called referenced the same variable/memory - are there perhaps PL/SQL optimisation enabled for the database or session? Or any other settings that could influence the test? Have you tried calling the procedures directly from SQL*Plus using a bind var and not via an anon block and a local var in that block?I have. And the results were the same
SQL> var ename varchar2(100);
SQL> exec p1( :ename );
P1 A:Jones
PL/SQL procedure successfully completed.
SQL> exec p2( :ename );
P2 A:
PL/SQL procedure successfully completed.
SQL> exec p3( :ename );
P3 A:
PL/SQL procedure successfully completed.
As a sanity test - what happens when proc P3 for example is changed to a catersian join/union of emp2 and plch_emp? Do the test results change? Or you can change it as follows:
SQL> ed
Wrote file afiedt.buf
1 create or replace procedure p5( p_out out varchar2 )
2 is
3 begin
4 --// force a value into p_out using a successful fetch
5 select emp_name
6 into p_out
7 from plch_emp
8 where rownum = 1;
9 --// force an error and determine if p_out was overwritten
10 select ename
11 into p_out
12 from emp2
13 order by ename;
14 exception
15 when others then
16 dbms_output.put_line( 'P5:' || p_out );
17* end;
18 /
Procedure created.
SQL> exec p5( :ename );
P5:Jones
PL/SQL procedure successfully completed.
Of course, you can also put this one down to using an operating system like Windows as a poor database server and not as a magnificent client gaming platform... Well, sure. But you can probably only play World of Warcraft so long before you need to write some PL/SQL.
Justin -
Detecting when exception was thrown using custom class loader
Hello all,
I would like to implement the solution described here - http://stackoverflow.com/questions/75218/how-can-i-detect-when-an-exceptions-been-thrown-globally-in-java - that uses custom class loader in order to detect when an Exeption thrown somewhere in the JVM hosting my app, please note that exceptions might be thrown from 3rd party jars the app is using. So, thanks to help I got from another post, I've managed to code the custom class loader. My question is how can the class loader wrap the original exception, as the methods in ClassLoader deals with classes, not instances. So where should I set the original exception?
Thanks!
Edited by: user9355666 on Sep 28, 2010 10:48 PMuser9355666 wrote:
I think I'm missing something fundumental, forgive me for being slow...
This is what I did so far. For the exception wrapper I made a simple class extens Exception that recieve Exception in its ctor and store it. I also subclassed ClassLoader and override its loadClass(). I've registered it as the system classloader. My thinking was to check in that point that if the requested class is instance of Exception and if yes, returning my wrapper class wrapping this exception. But, since loadClass() return class, how can I set in the wrapper the original exception?
In addition, let's say 2 different places in the code throws NPE, to my understanding the classloader will load NPE only once, so how throwing the NPE in the second time can be detected?you are missing a key point. you should creating a custom implementation of the NPE class which hooks into your detection code in its constructor. from that point forward, anytime any NPE (which is your custom class) is constructed, you can detect it. -
Unable to read AsynchronousSocketChannel after getting timeout exception
i am trying to read some data on the server using a AsynchronousSocketChannel .
I have this scenario :
1- Call channel.read : this will print "Received"
2- Call channel.read : this should fail due to timeout exception.
3- Call channel.read : I am sending data in this case but I got the exception "Reading not allowed due to timeout or cancellation"
Below is the source code
My environment is :
OS : Windows 7
JDK :
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
package com.qmic.asynchronous;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.nio.ByteBuffer;
import java.nio.channels.AsynchronousChannelGroup;
import java.nio.channels.AsynchronousServerSocketChannel;
import java.nio.channels.AsynchronousSocketChannel;
import java.nio.channels.CompletionHandler;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
public class NIOChannel {
public static void main(String[] args) {
try{
MyAsynchronousTcpServer server = new MyAsynchronousTcpServer();
Thread serverThread = new Thread(server);
serverThread.start();
Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9001, InetAddress.getByName("127.0.0.1"), 9003);
socket.setSoTimeout(30000);
socket.setKeepAlive(true);
if (socket.isConnected()){
PrintWriter dos = new PrintWriter(socket.getOutputStream());
InputStream input = socket.getInputStream();
byte[] buffer = new byte[1024];
// Data of the first call
dos.print("ABCDEFGH");
dos.flush();
byte[] data = new byte[50];
socket.getInputStream().read(data);
// Print the result from server, written in handler of first read operation.
System.out.println("Result is:" + new String(data));
if (data.length > 0){
Thread.sleep(10000); // Wait for 10 Seconds so the second read on the server will fail.
// Data of the third call
dos.print("ABCDEFGH");
dos.flush();
}catch(Exception ex){
ex.printStackTrace();
class MyAsynchronousTcpServer implements Runnable{
final int SERVER_PORT = 9001;
final String SERVER_IP = "127.0.0.1";
private int THREAD_POOL_SIZE = 10;
private int DEFAULT_THREAD_POOL_SIZE = 2;
ConcurrentLinkedQueue<ListenHandler> handlers = new ConcurrentLinkedQueue<ListenHandler>();
boolean shutDown = false;
public void run(){
//create asynchronous server-socket channel bound to the default group
try {
// Create the ChannelGroup(thread pool).
ExecutorService executorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE);
AsynchronousChannelGroup group = AsynchronousChannelGroup.withCachedThreadPool(executorService, DEFAULT_THREAD_POOL_SIZE);
AsynchronousServerSocketChannel asynchronousServerSocketChannel =
AsynchronousServerSocketChannel.open(group);
if (asynchronousServerSocketChannel.isOpen())
//bind to local address
asynchronousServerSocketChannel.bind(new InetSocketAddress(SERVER_IP, SERVER_PORT));
while(!shutDown){
Future<AsynchronousSocketChannel> asynchronousSocketChannelFuture =asynchronousServerSocketChannel.accept();
final AsynchronousSocketChannel channel = asynchronousSocketChannelFuture.get(); // Timeout can be specified in the get() function, thread is blocked here
System.out.println("New channel created successfully");
// First call, should print Result of call 1 is : 10 (size of ABCDEFGH)
ByteBuffer buffer1 = ByteBuffer.allocateDirect(250);
channel.read(buffer1, 5, TimeUnit.SECONDS, null, new CompletionHandler<Integer, Object>() {
@Override
public void completed(Integer result, Object attachment) {
System.out.println("Result of call 1 is :" + result);
ByteBuffer response = ByteBuffer.wrap("Received".getBytes());
channel.write(response);
@Override
public void failed(Throwable exc, Object attachment) {
exc.printStackTrace();
Thread.sleep(3000);
// Second read, should print error InterruptedByTimeoutException
ByteBuffer buffer2 = ByteBuffer.allocateDirect(250);
channel.read(buffer2, 5, TimeUnit.SECONDS, null, new CompletionHandler<Integer, Object>() {
@Override
public void completed(Integer result, Object attachment) {
System.out.println("Result of call 2 is :" + result);
@Override
public void failed(Throwable exc, Object attachment) {
exc.printStackTrace();
Thread.sleep(9000);
// Second read operation was failed, no try to read again . AN EXCEPTION IS THROWN HERE : Reading not allowed due to timeout or cancellation
ByteBuffer buffer3 = ByteBuffer.allocateDirect(250);
channel.read(buffer3, 5, TimeUnit.SECONDS, null, new CompletionHandler<Integer, Object>() {
@Override
public void completed(Integer result, Object attachment) {
System.out.println("Result of call 3 is :" + result);
@Override
public void failed(Throwable exc, Object attachment) {
exc.printStackTrace();
else
System.out.println("The asynchronous server-socket channel cannot be opened!");
catch (Exception ex)
ex.printStackTrace();
System.err.println(ex);
}I'm having the same "Unable to read the SIM card" issue. My phone is less than two months old, the unable to read SIM card issue started about a week after I purchased the phone. That was followed by a host of erratic, sporadic issues to the phone becomes unusable and the only way to temporarily fix it is to remove the battery for a few seconds. I've gone through the factory reset with Verizon reps where I purchased the phone from as well as with a Verizon online Chat representative. In a nutshell, I got a ticket to send the phone back to Samsung in Plano, Texas to get the phone fixed, I am going to do that today because this problem is ridiculous.
-
BPM finishes when reaching exception in loop block
Hi everybody,
we got a loop block in BMP. In the loop block we catch mapping errors by using an exception branch.
What we can see is that when an exception is thrown the process steps into the exception branch an than is leaving the loop block!! So the remaining single messages are not processed!
Is there a workaround?
Regards MarioHi Mario,
Have you used the local correlation for block step.
Can you please give steps you used in BPM, also try to see the below threads
What is the use of block step in BPM? Please help!
BPM ParforEach Loop
BPM loop
also,
BPM Block step
Using BPM (Blocks) when Incoming message has multilple rows
Doubt in BPM
BPM: Block Processing: ParForEach
Regards
Chilla -
How to omit parameter values from exceptions thrown by the JDBC driver
Is there a way to get the Oracle JDBC driver to omit the parameter values from the message when it throws an exception?
We have an application that persists credit cards and when an exception is thrown by the driver, it's including the credit card number in the error message, which ultimately gets logged by the application. There are too many layers and locations, including OpenJPA, Spring, and our own application, where we'd have to massage the error data to remove that card number.
For example, we get the following exception:
Caused by: org.apache.renamed.openjpa.lib.jdbc.ReportingSQLException: ORA-20104: Permission denied
ORA-06512: at "PROTEGRITY.PTY", line 57
ORA-06512: at "PROTEGRITY.PTY", line 383
ORA-06512: at "SUBSDSYS.TORDERPAYMENT_UPD", line 16
ORA-04088: error during execution of trigger 'SUBSDSYS.TORDERPAYMENT_UPD'
{prepstmnt 6603044
UPDATE PAYMENT
SET CARD_HOLDER_NAME = ?, CARD_TYPE = ?, EXPIRY_MONTH = ?, EXPIRY_YEAR = ?, GATEWAY = ?
WHERE UIDPK = ?
[params=(String) Test Test, (String) VISA, (String) 03, (String) 2012, (String) CREDITCARD, (long) 106901]} [code=20104, state=72000]
at org.apache.renamed.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
at org.apache.renamed.openjpa.lib.jdbc.LoggingConnectionDecorator.access$800(LoggingConnectionDecorator.java:57)
The actual content of the message appears to come from the JDBC driver, not OpenJPA.
This particular example doesn't show the card number, but only exposed that possibility as a risk.
BTW: before you ask, for PCI compliance we're using a database layer service to encrypt the card numbers before they're stored in the table.
Thanks much.[email protected] wrote:
The actual content of the message appears to come from the JDBC driver, not OpenJPA.Wrong. This is a dump of parameters used to execute a query - and it comes from some upper layer, not the JDBC driver.
I would start looking at the source code starting here:
org.apache.renamed.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192) -
I have been successfully accessing a secure site using a Citrix plugin. The security certificate for the site was renewed on 17 September and is valid, but is apparently supported by Explorer. When I accessed it today, Firefox reported it as Insecure. I attempted to bypass the Firefox block, but must have failed to Confirm Security Exception, so that my access is now denied as I 'have said this is not a trusted site' (error 183). Is there any way I can now access the site.
Thank you for your reply.
My problem isn't removing my log-in name and password for a site.
The problem is I already had the log-in name and password saved by FF, but I was required by the site to change the password. FF did not recognize that it had changed and refuses to prompt me to save the new password.
After several attempts to force the prompt, I deleted the site from the Saved Password list, hoping that the next time I entered my log-in name and password on that site FF would ask if I wanted to save both. That did not happen even after exiting FF and relaunching it.
So, right now FF will not save my log-in name and password for a site that it used track for me. Given the complexity of the new password, I really do not want to manually enter it every time I use the site.
Regards. -
We currently have an Exchange 2010 hybrid install and we have migrated all of our email accounts to Office 365. Now, I want to do an on-premise install of Exchange 2013 to better manage the hybrid setup. When I try to install Exchange 2013 it
asks for my O365 credentials to do a hybrid check but always fails with the above message. I've done quite a bit of searching but haven't come up with anything useful.
Here is what appears in the exchange setup log:
[09/22/2014 15:48:27.0024] [0] Reading the Exchange Online tenant version information failed due to an exception. Please check the Exchange setup log for more information.
[09/22/2014 15:48:27.0024] [0] Could not load type 'Microsoft.Exchange.Data.Directory.DirectoryBackendType' from assembly 'Microsoft.Exchange.Data.Directory, Version=15.0.0.0, Culture=neutral,
[09/22/2014 15:48:27.0024] [0] Could not load type 'Microsoft.Exchange.Data.Directory.DirectoryBackendType' from assembly 'Microsoft.Exchange.Data.Directory, Version=15.0.0.0, Culture=neutral,
[09/22/2014 15:48:27.0147] [0] Session=Tenant Total Cmdlet Time=1.6931035s
[09/22/2014 15:48:27.0148] [0] Microsoft.Exchange.Management.Deployment.HybridConfigurationDetection.HybridConfigurationDetectionException: Reading the Exchange Online tenant version information failed due to an exception. Please check the Exchange setup log
for more information. ---> System.TypeLoadException: Could not load type 'Microsoft.Exchange.Data.Directory.DirectoryBackendType' from assembly 'Microsoft.Exchange.Data.Directory, Version=15.0.0.0, Culture=neutral,Hi,
I recommend you post this in
office 365 forum also, as they should have more professional knowledge on hybrid deployments
and you may get effective solution timely.
In addition, I found a similar thread for you reference:
http://community.office365.com/en-us/f/156/t/255739.aspx
According to the reply of this thread, if you run the HCW (Hybrid Configuration Wizard) to deploy the Exchange Hybrid environment, there will generate an HCW log
file for this deployment.
Additional troubleshooting information is available in the Update-HybridConfiguration log file located at C:\Program Files\Microsoft\Exchange Server\V1*\Logging\Update-HybridConfiguration\HybridConfiguration****.log
Best regards,
Niko Cheng
TechNet Community Support -
How to avoid redialing failed calls when unlocking an iphone
when using my iphone 4 with ios7 in my car via bluetooth, i have the issue that when a call drops for one or other reason; the iphone wants to recall that failed call when unlocking my iphone at arrival.
This is new since i upgraded my phone to ios7. with earlier versions i never had this issue.
it looks to me to a mistake in the software statemachine where missed calls are kept in a buffer, even when i redialed the person using my car kit just some minutes later.And the worst and most stupid thing happens when that person already called you back. And while talking with them again you take your phone and try to unlock it to go to home screen (for ex to reply to a message you just received), and it starts calling a person you speak right now)). And they are asking: we are talking already, how did you just call me????
-
Touch ID on my ip5s had broken. I added my fingerprints before then I deleted them and add new one. How I can fix that problem? P/s : Fail immediately when I click on Add fingerprints.
problem is "Failed. Sorry, the operation was not succesfull. ... " and now i can't use touch ID in my phone
-
Why is exception not thrown in AseCommand when "Truncation error occurred"?
In the below SQL, data is written to SOURCE and from there to TARGET.
The DECIMAL columns in TARGET are deliberately smaller than those in SOURCE (eg a DECIMAL (12, 2) column populated from a DECIMAL (19,11) source).
When I run this in an Query tool (eg, SqlDbx) I get the messages:
"Truncation error occurred
Command has been aborted"
But when I run this using the .net Client (supplied with the Developer Edition of ASE 16.0) no exception is thrown (the INSERT fails though). The method is AseCommand.ExecuteNonQuery().
Is this deliberate?
Is this believed to be correct?
How can I tell that a truncation error has been raised?
Thanks
IF OBJECT_ID ('dbo.TARGET') IS NOT NULL
DROP TABLE dbo.TARGET
GO
CREATE TABLE dbo.TARGET
S_Name_NVARCHAR NVARCHAR (50) null,
S_RedComponent_DEC_15_6 decimal(15, 6) NULL,
S_BlueComponent_DEC_12_2 decimal(12, 2) NULL,
S_GreenComponent_DEC_18_10 decimal(18, 10) NULL
GO
IF OBJECT_ID ('dbo.SOURCE') IS NOT NULL
DROP TABLE dbo.SOURCE
GO
CREATE TABLE dbo.SOURCE
Name_NVARCHAR NVARCHAR (2000) NULL,
RedComponent_DEC DECIMAL (19,11) NULL,
GreenComponent_DEC DECIMAL (19,11) NULL,
BlueComponent_DEC DECIMAL (19,11) NULL
GO
INSERT INTO dbo.SOURCE (Name_NVARCHAR, RedComponent_DEC, GreenComponent_DEC, BlueComponent_DEC)
VALUES ('Beige', 272.195, 272.195, 244.42)
GO
INSERT INTO dbo.SOURCE (Name_NVARCHAR, RedComponent_DEC, GreenComponent_DEC, BlueComponent_DEC)
VALUES ('Bisque', 283.305, 253.308, 217.756)
GO
INSERT INTO dbo.SOURCE (Name_NVARCHAR, RedComponent_DEC, GreenComponent_DEC, BlueComponent_DEC)
VALUES ('Black', 0, 0, 0)
GO
INSERT INTO dbo.SOURCE (Name_NVARCHAR, RedComponent_DEC, GreenComponent_DEC, BlueComponent_DEC)
VALUES ('BlanchedAlmond', 283.305, 261.085, 227.755)
GO
--Is there data to migrate?
SELECT LEFT( S.Name_NVARCHAR,8000),S.GreenComponent_DEC,S.GreenComponent_DEC,S.GreenComponent_DEC
FROM (
SELECT * FROM SOURCE
) S
--Yes.migrate away!
--Next line gives a truncation error occurred in Sybase (gives a truncation error occurred in a query tool
--but fails silently in AseCommand.ExecuteNonQuery).
INSERT dbo.TARGET (S_Name_NVARCHAR,S_RedComponent_DEC_15_6,S_BlueComponent_DEC_12_2,S_GreenComponent_DEC_18_10)
SELECT LEFT( S.Name_NVARCHAR,8000),S.GreenComponent_DEC,S.GreenComponent_DEC,S.GreenComponent_DEC
FROM (
SELECT * FROM SOURCE
) S
select * from dbo.TARGETHi Dave,
I am consulting internally on this. To my understanding, this behavior is based on the ASE severity level, as returned in the TDS_EED token. AseExceptions are thrown when severity level is 11 or higher.
Our docs are not explanatory in this regard. Once I get clarification we will provide something in the form of wiki or KBA or doc bug to further explain the detail. Apologize for the delay and problems this caused. I guess since the command is aborted by ASE, therefore no insertion occurs, even though ASE indicates truncation occurs prior - makes this confusing.
The message severity, etc is controlled by ASE and the client is just following suit according to the TDS spec. Its just lacking in the client docs. This can be remedied.
ASE does provide the option to allow truncation and not abort. It's a set command:
Enter a query:
1 > set arithabort numeric_truncation off
Enter a query:
1 > INSERT dbo.TARGET (S_Name_NVARCHAR,S_RedComponent_DEC_15_6,S_BlueComponent_DEC_12_2,S_GreenComponent_DEC_18_10) SELECT LEFT( S.Name_NVARCHAR,8000),S.GreenComponent_DEC,S.GreenComponent_DEC,S.GreenComponent_DEC FROM (SELECT * FROM SOURCE
) S
4 rows Affected.
Notice though ASE does NOT send truncation message. This is when it is well known and accepted to insert and truncate the numeric data.
Cheers,
-Paul -
LDAP search API doesn't always return NamingException when timeout
I am from My Oracle Support (MOS) (http://support.oracle.com) team.
In MOS we connect to corporation OID (external) to search for user by email, and search for user's groups.
But sometimes, the OID search API simply return without any results, and doesn't throw any exception, but we know the user exist, or user has group memberships.
Here is the code snippet:
1. Create connection
env.put("com.sun.jndi.ldap.read.timeout", "3000");
env.put("com.sun.jndi.ldap.connect.timeout", "3000");
Context ctx = NamingManager.getInitialContext(env);
2. search for user by email address
try {
idCtx.search(OidServiceConstants.SEARCH_BASE, searchFilter, searchControls);
catch (Exception e) {
// handle exception and retry, etc.
3. get user's group membership
PropertySetCollection propSetColl =
Util.getGroupMembership(idCtx, userDn, new String[0],
false, "uniquemember");
In step #1, the timeout is set to 3s for both connection and read operations. but the problem is that in step #2 and #3,
the API sometimes throw NamingException to indicate there is timeout, such as
javax.naming.NamingException: LDAP response read timed out, timeout used:3000ms.; remaining name 'dc=oracle,dc=com'
Sometimes it doesn't, but we have confirmed the times with backend OID team and know that it took 8s.
So how to make the API throw exception reliably ?Hi, Navneet Nair
did you set up an OSS Message for the Portal-User Problem, if so, can u tell me the result and/or how you fixed your logon trouble...
in fact i found out, when i change the user as you describe above, i have the same problem. when then i log off again, and come back withe the just before logged in user, i get the correct result on the webdynpros. <b>So I have to log off twice to actually change</b> the corresponding result on the webdynpro - strange thing is, taht in fact on the Portal screen in the upper left corner each time, i swap users the correct username is displayed...
we are running ep 6 patch level 10...
thanks for a hint,
mattthias
Message was edited by: matthias kasig
Message was edited by: matthias kasig -
How to catch the user defined exception in application service
Hi All,
How to catch the user defined exception in application service when it is throwed by the external service..
Regards,
Thirumurugan.Hi,
Thanks for your reply,
Actually I am calling validate Login method of External service from the application service. When the login fails, my external service will throw user defined Exception.I want to catch the user defined Exception.
But in the application service , validate Login method can catch only Invocation Exception and Engine Exception.
These two exception are present in the Application service remote interface.
public com.sap.comptest.extsrv.accrjavawsvi__document.output.
Ns1_validateLoginResponse validateLogin(com.sap.comptest.extsrv.accrjavawsvi__document.input.Ns1_validateLogin input) throws com.sap.caf.mp.base.exception.InvocationException, com.sap.caf.mp.base.exception.EngineException;
User defined exception is not present there. When i include the webservice as external service in CAF, it suppossed to generate the java file for the custom exception of validate Login method and this generated file should be included in the application service remote interface..
public com.sap.comptest.extsrv.accrjavawsvi__document.output.
Ns1_validateLoginResponse validateLogin(com.sap.comptest.extsrv.accrjavawsvi__document.input.Ns1_validateLogin input) throws com.sap.caf.mp.base.exception.InvocationException, com.sap.caf.mp.base.exception.EngineException,
(generated file name of user defined Excpetion.
Then only validate login method of application service can catch the user defined Exception which is thrown by the external service.
regards,
Thirumurugan.p
Maybe you are looking for
-
Aperture and DNG. Anyone else seeing this?
I shoot a lot of RAW images and some of them on a camera that is not currently supported by Aperture (Panasonic DMC FZ8). When I convert those RAW images to DNG, Aperture displays them perfectly in the import preview. When I import them to a project,
-
"Content Editing" is not available when I go to the Tools sidebar--how can I access these features? I'm using Acrobat X 10.1.7. Thanks.
-
Weird chars at end of line in JTextArea
I am getting these weird characters at the end of the line in JTextArea when I use setText. I am doing the foll: //Creation of JTextArea JPanel p2 = new JPanel(); // for JTextArea and video displayText = new JTextArea(15,30); JScrollPane scrollPane =
-
LENOVO, please "FIX" your fixes!
Let me first say that the problem happened before and I spent over 2 hrs on the phone with tech support who eventually "fixed" it by downloading outdated version of SW. Today I noted the same problem: Fn key on-screen display does not work: nothing
-
IQS9 Completes Quality Notifications without digital signature
Hi all, When we complete quality notifications, the system requires the user to enter digital signature (username and password) in qm02. However when you select a list of notifications in IQS9, and then click on Edit from there, it brings the notific