Can weblogic client takes empty arrays being returned.
Hi All:
I am using weblogic 9.2 to generate the web service client code.
Here is my build.xml file to build the java client code:
>
<project name="webservices-TEST" default="client">
<taskdef name="clientgen" classname="weblogic.wsee.tools.anttasks.ClientGenTask" />
<target name="client" >
<clientgen
wsdl=" http://test:7035/TEST-engine/services/accumulator.wsdl"
destDir="clientclasses"
packageName="com.TEST.TEST2.caps.wsclient"
>
</clientgen>
</target>
</project>
Here is my client code to test the web service.
>
public class testWebServicesClient
public static void main(String[] test)
try {
Long recipientId = 11597997730620L;
AccumulatorWS impl = new AccumulatorWS_Impl("http://test:7035/TEST-engine/services/accumulator.wsdl");
IAccumulatorWS iAccWS1 = impl.getIAccumulatorWS();
AccumulatorResponse response = iAccWS1.getCurrentAccumulators(recipientId, "", "", "", "en", "");
System.err.println("The status is: " + response.getStatus());
catch (Exception e) {
e.printStackTrace();
I get the following error:
java.rmi.RemoteException: Illegal Capacity: -1; nested exception is:
java.lang.IllegalArgumentException: Illegal Capacity: -1
at com.test.wsclient.IAccumulatorWS_Stub.getCurrentAccumulators(IAccumulatorWS_Stub.java:46)
at test.testWebServicesClient.main(testWebServicesClient.java:27)
Caused by: java.lang.IllegalArgumentException: Illegal Capacity: -1
at java.util.ArrayList.<init>(ArrayList.java:111)
at com.bea.staxb.runtime.internal.util.collections.ArrayListBasedObjectAccumulator.createNewStore(ArrayListBasedObjectAccumulator.java:42)
at com.bea.staxb.runtime.internal.util.collections.ObjectAccumulator.<init>(ObjectAccumulator.java:39)
at com.bea.staxb.runtime.internal.util.collections.ArrayListBasedObjectAccumulator.<init>(ArrayListBasedObjectAccumulator.java:31)
at com.bea.staxb.runtime.internal.util.collections.AccumulatorFactory.createAccumulator(AccumulatorFactory.java:37)
at com.bea.staxb.runtime.internal.util.collections.AccumulatorFactory.createAccumulator(AccumulatorFactory.java:74)
at com.bea.staxb.runtime.internal.SoapArrayRuntimeBindingType.createIntermediary(SoapArrayRuntimeBindingType.java:255)
at com.bea.staxb.runtime.internal.RuntimeBindingProperty.createIntermediary(RuntimeBindingProperty.java:117)
at com.bea.staxb.runtime.internal.SoapUnmarshalResult.unmarshalElementProperty(SoapUnmarshalResult.java:364)
at com.bea.staxb.runtime.internal.SoapUnmarshalResult.basicExtractAndFill(SoapUnmarshalResult.java:241)
at com.bea.staxb.runtime.internal.SoapUnmarshalResult.extractAndFillElementProp(SoapUnmarshalResult.java:174)
at com.bea.staxb.runtime.internal.ByNameUnmarshaller.deserializeContents(ByNameUnmarshaller.java:51)
at com.bea.staxb.runtime.internal.AttributeUnmarshaller.unmarshalIntoIntermediary(AttributeUnmarshaller.java:47)
at com.bea.staxb.runtime.internal.SoapUnmarshalResult.umarshalComplexElementWithId(SoapUnmarshalResult.java:395)
at com.bea.staxb.runtime.internal.SoapUnmarshalResult.unmarshalElementProperty(SoapUnmarshalResult.java:366)
at com.bea.staxb.runtime.internal.SoapUnmarshalResult.basicExtractAndFill(SoapUnmarshalResult.java:241)
at com.bea.staxb.runtime.internal.SoapUnmarshalResult.extractAndFillElementProp(SoapUnmarshalResult.java:174)
at com.bea.staxb.runtime.internal.ByNameUnmarshaller.deserializeContents(ByNameUnmarshaller.java:51)
at com.bea.staxb.runtime.internal.AttributeUnmarshaller.unmarshal(AttributeUnmarshaller.java:38)
at com.bea.staxb.runtime.internal.SoapUnmarshalResult.unmarshalBindingType(SoapUnmarshalResult.java:110)
at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalType(UnmarshalResult.java:212)
at com.bea.staxb.runtime.internal.SoapUnmarshallerImpl.unmarshalType(SoapUnmarshallerImpl.java:93)
at weblogic.wsee.bind.runtime.internal.EncodedDeserializerContext.unmarshalType(EncodedDeserializerContext.java:66)
at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.internalDeserializeType(BaseDeserializerContext.java:170)
at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.deserializeType(BaseDeserializerContext.java:87)
at weblogic.wsee.codec.soap11.SoapDecoder.decodePart(SoapDecoder.java:401)
at weblogic.wsee.codec.soap11.SoapDecoder.decodeReturn(SoapDecoder.java:316)
at weblogic.wsee.codec.soap11.SoapDecoder.decodeParts(SoapDecoder.java:165)
at weblogic.wsee.codec.soap11.SoapDecoder.decode(SoapDecoder.java:116)
at weblogic.wsee.codec.soap11.SoapCodec.decode(SoapCodec.java:136)
at weblogic.wsee.ws.dispatch.client.CodecHandler.decodeOutput(CodecHandler.java:117)
at weblogic.wsee.ws.dispatch.client.CodecHandler.decode(CodecHandler.java:94)
at weblogic.wsee.ws.dispatch.client.CodecHandler.handleResponse(CodecHandler.java:71)
at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:242)
at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:226)
at weblogic.wsee.ws.dispatch.client.ClientDispatcher.handleResponse(ClientDispatcher.java:161)
at weblogic.wsee.ws.dispatch.client.ClientDispatcher.dispatch(ClientDispatcher.java:116)
at weblogic.wsee.ws.WsStub.invoke(WsStub.java:89)
at weblogic.wsee.jaxrpc.StubImpl._invoke(StubImpl.java:335)
at com.test.IAccumulatorWS_Stub.getCurrentAccumulators(IAccumulatorWS_Stub.java:37)
... 1 more
If I changed from
Long recipientId = 11597997730620L;
to
Long recipientId = 14998712L;
I get the error message The status is: 4.
The group that generates the web service state that the weblogic client code is choking
on empty arrays being returned. They say they have to return empty arrays
instead of nulls where no data is returned.
Is there something wrong with the weblogic tools
or am I using it incorrectly?
Yours,
Frustrated.
you'd have to check your generated code.
If it can't handle empty arrays that would bring my trust in Bea's code down another notch (and from what I've experienced indirectly of their WS stack I wasn't all that thrilled).
Similar Messages
-
How can I pass an empty array to a parameter of type PLSQLAssociativeArray
How can I pass an empty array to a parameter of type PLSQLAssociativeArray in VB? I defined the parameter like this
Dim myArray() as String = new String() {}
Dim myPara as new Oracle.DataAccess.Client.OracleCollectionType.PLSQLAssociativeArray
myPara = 0
myPara.Value = myArray
When I execute my stored procedure giving the above parameter, I got error saying OracleParameter.Value is invalid.
I have tried to give it the DBNull.Value, but it doesn't work either.
Note: everything works fine as long as myArray has some item in there. I just wonder how I can make it works in case I have nothing.
Thank you,How can I pass an empty array to a parameter of type PLSQLAssociativeArray in VB? I defined the parameter like this
Dim myArray() as String = new String() {}
Dim myPara as new Oracle.DataAccess.Client.OracleCollectionType.PLSQLAssociativeArray
myPara = 0
myPara.Value = myArray
When I execute my stored procedure giving the above parameter, I got error saying OracleParameter.Value is invalid.
I have tried to give it the DBNull.Value, but it doesn't work either.
Note: everything works fine as long as myArray has some item in there. I just wonder how I can make it works in case I have nothing.
Thank you, -
Generated WS client is unable to unmarshal returned object array
Hello,
I have created web service using Sun jaxws implementation. Several methods of this ws return object array (CustomObj []). When I generate the client (using jaxws-maven-plugin - wsimport) and call these methods I always get
empty array. I get no errors or warnings. When I generate axis client all works as expected. I think that this issue is related to jaxb but i have tried to switch between several versions ant this didn't help. CustomObj is very simple object with two attributes name and value...
Thanks for hints...Hi Shepy,
I think mapping an array of objects as response in WSDL messages is somewhat of an issue.
Instead try moving this array of object into another XSD if i assume you are using XSDs and then make sure that response XSD holds and array of your objects.
Regards,
Anand -
hi friends
using `n how can i add two empty line (two carriage return), between these two lines in the output file?
PS C:\> $env:COMPUTERNAME | add-content c:\file.txt
PS C:\> $Env:USERDOMAIN | add-content c:\file.txt
i tested "$env:computername`n`n`n$env:userdomain" | add-content c:\file.txt but it results in
myPCMyDomain
but i wanted the contents of the output file be like this:
MyPC
#empty line here
#empty line here
MyDomain
i tested many other forms but didn't work.
thanksI tried it, as well. The line breaks were respected in the PowerShell console, Programmer's Notepad, and Word; they weren't in Notepad.
You are using a Unicode file. Locale is what?
If you just want notepad compatible line breaks then do this:
del file.txt ; "$env:computername`r`n`r`n`r`n$env:userdomain" | add-content file.txt ;notepad file.txt
Look in hex to see that `n is ^L or 0xA and is only one character. CrLf is 0xD 0xA - two characters.
My programmers editors and VS all understand a single ^L as a line break so does PowerShell. Only DOS/Notepad and other utilitis don't understand this..
¯\_(ツ)_/¯ -
How can I insert en empty page without images being pushed of their place?
I made a document that contains text and a lot of images. Now I need to inset an emptey page at the beginning of the document but when I insert a page brake, all the images in the whole document are being pushed of their place, making to document a mess. I already locked to images to see if this helps but still they are being pused out of context with the text that they are refering to. How can I insert an empty page without this hapening?
AndréTry inserting a section break. The images should stay in their original section. Of course if you alter the text in that original section, the images will not move unless they are inline.
-
I wonder whether a PL/SQL procedure can take an array of varchar parameters
i want to take an array as parameters of a PL/SQL procedure, the type of the array may be varchar. How to implement this idea?
Thanks for any suggestions.create or replace
procedure c1 (p_array DBMS_SQL.VARCHAR2S) is
begin
dbms_output.enable (10000) ;
FOR i_rec in p_array.FIRST..p_array.LAST LOOP
dbms_output.put_line (p_array(i_rec)) ;
END LOOP ;
end ;
set serveroutput on
DECLARE
T_V2 DBMS_SQL.VARCHAR2S;
BEGIN
T_V2(1) := 'Alpha' ;
T_V2(2) := 'Beta' ;
T_V2(3) := 'Gamma' ;
C1 (T_V2) ;
END;
Alpha
Beta
Gamma -
How does "Unflatten From String" take a type and return a value of that type?
http://zone.ni.com/reference/en-XX/help/371361E-01/glang/unflatten_from_string/
How exactly does the "type" argument for "Unflatten From String" work? I need to create a VI that takes a type, passes it as an argument to several calls of the "Unflatten From String" function, and returns an array containing elements of the type originally passed. The "Unflatten From String" function seems to do some magic though, because the type of the "value" that it outputs changes depending on the type it is passed as input. How do I do the same magic in my VI?
Ultimately, what I need to accomplish is an unflatten-list operation. Given a type T and a byte string of length L (which contains a concatenation of T elements that are flattened to their bytes), create a VI that unflattens all the types in the string and return an array of length (L / sizeof(T)) that contains each type.
Note: performing the unflatten-list operation is trivial, but I cannot for the life of me figure out how to do it in a VI that takes a type and returns an array of the appropriate type. By the way, my data is being given to me from another source, so please don't bother suggesting that I should be flattening an array using LabVIEW's "Flatten To String" function in the first place. My data is not given in LabVIEW's array format: http://zone.ni.com/reference/en-XX/help/371361B-01/lvconcepts/flattened_data/
Thanks a ton!
-WakkaTake a look at this example: You can see that the flattened string contains several bytes. The first four bytes contain the length of array (number of elements). Since the data type is U32, the next 32 bits (4 bytes) contains the value of the first element, and so on. Could you possibly use this scheme to do what you want to do? Other data types present different outputs. You would have to experiment with them.
- tbob
Inventor of the WORM Global -
How to empty array dynamically
I am trying to build a array to store the x cursor position data. Each time, I can drage X cursor and move left or right. Then I click "add data in array", the x position is added to array. I can continue to add as many as I want when I move x cursor again and again. All those work good. I want to keep loop and sequence structure as attached VI.
My problem is: I have difficulty to empty array dynamically. For example, I did not choose right x cursor position, I want clean/empty array just by click "CLEAN" button. I do not want event structure to do this since it cause other problems.
Please take a look see how to make it.
Thanks
Attachments:
buildArrayclean.vi 41 KBYou need to feed an empty array to the shift register, not to the indicator.
See attached, LabVIEW 8.0.
(You don't even need an empty array constant, just use "use default if unwired" on the output tunnel. The default data for an array is an empty array.).
Also, your outer loop is pointless. It does not do anything since it stops at the same time as the inner loop. You only need the inner loop. ... and why do you need a big sequence structure???
Message Edited by altenbach on 04-11-2006 09:21 AM
LabVIEW Champion . Do more with less code and in less time .
Attachments:
buildArraycleanMOD2.vi 44 KB -
Explain plan cardinallity is way off compared to actual rows being returned
Database version 11.2.0.3
We have a small but rapidly growing datawarehouse which has OBIEE as its front end reporting tool. Our DBA has set up a automatic stats gathering method in OEM and we can see that it run and gathers stats on stale objects on a regular basis. So we know the statistics are upto date.
In checking some slow queries I can see that the cardinality being reported in explain plans is way off compared to what is actually being returned.
For example the actual number of rows returned are 8000 but the cardinality estimate is > 300,000.
Now as per an Oracle White paper(The Oracle Optimizer Explain the Explain Plan) having "multiple single column predicates on a single table" can affect cardinality estimates and in case of our query that is true. Here is the "WHERE Clause section" of the query
SQL> select D1.c1 as c1,
2 D1.c2 as c2,
3 D1.c3 as c3,
4 D1.c4 as c4,
5 D1.c5 as c5,
6 D1.c6 as c6,
7 D1.c7 as c7,
8 D1.c8 as c8,
9 D1.c9 as c9,
10 D1.c10 as c10,
11 D1.c11 as c11,
12 D1.c12 as c12,
13 D1.c13 as c13,
14 D1.c14 as c14,
15 D1.c15 as c15,
16 D1.c16 as c16
17 from (select D1.c4 as c1,
18 D1.c5 as c2,
19 D1.c3 as c3,
20 D1.c1 as c4,
21 D1.c6 as c5,
22 D1.c7 as c6,
23 D1.c2 as c7,
24 D1.c8 as c8,
25 D1.c9 as c9,
26 D1.c10 as c10,
27 D1.c9 as c11,
28 D1.c11 as c12,
29 D1.c2 as c13,
30 D1.c2 as c14,
31 D1.c12 as c15,
32 'XYZ' as c16,
33 ROW_NUMBER() OVER(PARTITION BY D1.c2, D1.c3, D1.c4, D1.c5, D1.c6, D1.c7, D1.c8, D1.c9, D1.c10, D1.c11, D1.c12 ORDER BY D1.c2 ASC, D1.c3 ASC, D1.c4 ASC, D1.c5 ASC, D1.c6 ASC, D1.c
ASC, D1.c8 ASC, D1.c9 ASC, D1.c10 ASC, D1.c11 ASC, D1.c12 ASC) as c17
34 from (select distinct D1.c1 as c1,
35 D1.c2 as c2,
36 'CHANNEL1' as c3,
37 D1.c3 as c4,
38 D1.c4 as c5,
39 D1.c5 as c6,
40 D1.c6 as c7,
41 D1.c7 as c8,
42 D1.c8 as c9,
43 D1.c9 as c10,
44 D1.c10 as c11,
45 D1.c11 as c12
46 from (select sum(T610543.GLOBAL1_EXCHANGE_RATE * case
47 when T610543.X_ZEB_SYNC_EBS_FLG = 'Y' then
48 T610543.X_ZEB_AIA_U_REVN_AMT
49 else
50 0
51 end) as c1,
52 T536086.X_ZEBRA_TERRITORY as c2,
53 T526821.LEVEL9_NAME as c3,
54 T526821.LEVEL1_NAME as c4,
55 T577698.PER_NAME_FSCL_YEAR as c5,
56 T577698.FSCL_QTR as c6,
57 T31796.X_ZEBRA_TERRITORY as c7,
58 T31796.X_OU_NUM as c8,
59 T664055.TERRITORY as c9,
60 T536086.X_OU_NUM as c10,
61 T526821.LEVEL4_NAME as c11
62 from W_INT_ORG_D T613144 /* Dim_ZEB_W_INT_ORG_D_POS_Client_Attr_Direct */,
63 W_ZEBRA_REGION_D T664055 /* Dim_ZEB_W_ZEBRA_REGION_D_POS_Client_Direct */,
64 W_DAY_D T577698 /* Dim_ZEB_W_DAY_D_Order_Invoice_Date */,
65 WC_PRODUCT_HIER_DH T526821 /* Dim_WC_PRODUCT_HIER_DH */,
66 W_PRODUCT_D T32069 /* Dim_W_PRODUCT_D */,
67 W_ORG_D T31796,
68 W_ORG_D T536086 /* Dim_ZEB_W_ORG_D_Reseller */,
69 W_ORDERITEM_TMP_F T610543 /* Fact_ZEB_W_ORDERITEM_F_Direct */
70 where (T610543.PR_OWNER_BU_WID = T613144.ROW_WID and
71 T577698.ROW_WID =
72 T610543.X_ZEB_AIA_TRXN_DT_WID and
73 T32069.ROW_WID = T526821.PROD_WID and
74 T32069.ROW_WID = T610543.ROOT_LN_PROD_WID and
75 T536086.ROW_WID = T610543.ACCNT_WID and
76 T31796.DATASOURCE_NUM_ID =
77 T610543.DATASOURCE_NUM_ID and
78 T31796.INTEGRATION_ID = T610543.VIS_PR_BU_ID and
79 T536086.DELETE_FLG = 'N' and
80 T610543.X_ZEB_DELETE_FLG = 'N' and
81 T613144.X_ZEB_REGION_WID = T664055.ROW_WID and
82 T577698.FSCL_DAY_OF_YEAR < 97 and
83 '2006' < T577698.PER_NAME_FSCL_YEAR and
84 T536086.X_OU_NUM <> '11073' and
85 T536086.X_ZEBRA_TERRITORY !=
86 'XX23' and
87 T536086.X_OU_NUM != '56791647728774' and
88 T536086.X_OU_NUM != '245395890' and
89 T536086.X_ZEBRA_TERRITORY !=
90 'STRATEGIC ACCTS 2' and
91 T526821.LEVEL2_NAME != 'Charges' and
92 T526821.LEVEL9_NAME != 'Unspecified' and
93 T536086.X_ZEBRA_TERRITORY !=
94 'XX1' and T536086.X_ZEBRA_TERRITORY !=
95 'XX2' and T536086.X_ZEBRA_TERRITORY !=
96 'XX3' and T536086.X_ZEBRA_TERRITORY !=
97 'XX4' and
98 (T536086.X_ZEBRA_TERRITORY in
99 ( ... In List of 22 values )) and
125 T32069.X_ZEB_EBS_PRODUCT_TYPE is null)
126 group by T31796.X_ZEBRA_TERRITORY,
127 T31796.X_OU_NUM,
128 T526821.LEVEL1_NAME,
129 T526821.LEVEL4_NAME,
130 T526821.LEVEL9_NAME,
131 T536086.X_OU_NUM,
132 T536086.X_ZEBRA_TERRITORY,
133 T577698.FSCL_QTR,
134 T577698.PER_NAME_FSCL_YEAR,
135 T664055.TERRITORY) D1) D1) D1
136 where (D1.c17 = 1)
137 /
Elapsed: 00:00:35.19
Execution Plan
Plan hash value: 3285002974
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |
| 0 | SELECT STATEMENT | | 2145M| 2123G| | 612K (1)| 03:03:47 | | | | | |
| 1 | PX COORDINATOR | | | | | | | | | | | |
| 2 | PX SEND QC (RANDOM) | :TQ10012 | 2145M| 2123G| | 612K (1)| 03:03:47 | | | Q1,12 | P->S | QC (RAND) |
|* 3 | VIEW | | 2145M| 2123G| | 612K (1)| 03:03:47 | | | Q1,12 | PCWP | |
|* 4 | WINDOW NOSORT | | 2145M| 421G| | 612K (1)| 03:03:47 | | | Q1,12 | PCWP | |
| 5 | SORT GROUP BY | | 2145M| 421G| 448G| 612K (1)| 03:03:47 | | | Q1,12 | PCWP | |
| 6 | PX RECEIVE | | 2145M| 421G| | 1740 (11)| 00:00:32 | | | Q1,12 | PCWP | |
| 7 | PX SEND HASH | :TQ10011 | 2145M| 421G| | 1740 (11)| 00:00:32 | | | Q1,11 | P->P | HASH |
|* 8 | HASH JOIN BUFFERED | | 2145M| 421G| | 1740 (11)| 00:00:32 | | | Q1,11 | PCWP | |
| 9 | PX RECEIVE | | 268K| 7864K| | 93 (2)| 00:00:02 | | | Q1,11 | PCWP | |
| 10 | PX SEND HASH | :TQ10009 | 268K| 7864K| | 93 (2)| 00:00:02 | | | Q1,09 | P->P | HASH |
| 11 | PX BLOCK ITERATOR | | 268K| 7864K| | 93 (2)| 00:00:02 | | | Q1,09 | PCWC | |
| 12 | TABLE ACCESS FULL | W_ORG_D | 268K| 7864K| | 93 (2)| 00:00:02 | | | Q1,09 | PCWP | |
| 13 | PX RECEIVE | | 345K| 59M| | 1491 (2)| 00:00:27 | | | Q1,11 | PCWP | |
| 14 | PX SEND HASH | :TQ10010 | 345K| 59M| | 1491 (2)| 00:00:27 | | | Q1,10 | P->P | HASH |
|* 15 | HASH JOIN BUFFERED | | 345K| 59M| | 1491 (2)| 00:00:27 | | | Q1,10 | PCWP | |
| 16 | PX RECEIVE | | 1321 | 30383 | | 2 (0)| 00:00:01 | | | Q1,10 | PCWP | |
| 17 | PX SEND BROADCAST | :TQ10006 | 1321 | 30383 | | 2 (0)| 00:00:01 | | | Q1,06 | P->P | BROADCAST |
| 18 | PX BLOCK ITERATOR | | 1321 | 30383 | | 2 (0)| 00:00:01 | | | Q1,06 | PCWC | |
| 19 | TABLE ACCESS FULL | W_ZEBRA_REGION_D | 1321 | 30383 | | 2 (0)| 00:00:01 | | | Q1,06 | PCWP | |
|* 20 | HASH JOIN | | 345K| 52M| | 1488 (2)| 00:00:27 | | | Q1,10 | PCWP | |
| 21 | JOIN FILTER CREATE | :BF0000 | 9740 | 114K| | 2 (0)| 00:00:01 | | | Q1,10 | PCWP | |
| 22 | PX RECEIVE | | 9740 | 114K| | 2 (0)| 00:00:01 | | | Q1,10 | PCWP | |
| 23 | PX SEND HASH | :TQ10007 | 9740 | 114K| | 2 (0)| 00:00:01 | | | Q1,07 | P->P | HASH |
| 24 | PX BLOCK ITERATOR | | 9740 | 114K| | 2 (0)| 00:00:01 | | | Q1,07 | PCWC | |
| 25 | TABLE ACCESS FULL | W_INT_ORG_D | 9740 | 114K| | 2 (0)| 00:00:01 | | | Q1,07 | PCWP | |
| 26 | PX RECEIVE | | 344K| 47M| | 1486 (2)| 00:00:27 | | | Q1,10 | PCWP | |
| 27 | PX SEND HASH | :TQ10008 | 344K| 47M| | 1486 (2)| 00:00:27 | | | Q1,08 | P->P | HASH |
| 28 | JOIN FILTER USE | :BF0000 | 344K| 47M| | 1486 (2)| 00:00:27 | | | Q1,08 | PCWP | |
|* 29 | HASH JOIN BUFFERED | | 344K| 47M| | 1486 (2)| 00:00:27 | | | Q1,08 | PCWP | |
| 30 | JOIN FILTER CREATE | :BF0001 | 35290 | 964K| | 93 (2)| 00:00:02 | | | Q1,08 | PCWP | |
| 31 | PX RECEIVE | | 35290 | 964K| | 93 (2)| 00:00:02 | | | Q1,08 | PCWP | |
| 32 | PX SEND HASH | :TQ10004 | 35290 | 964K| | 93 (2)| 00:00:02 | | | Q1,04 | P->P | HASH |
| 33 | PX BLOCK ITERATOR | | 35290 | 964K| | 93 (2)| 00:00:02 | | | Q1,04 | PCWC | |
|* 34 | TABLE ACCESS FULL | W_ORG_D | 35290 | 964K| | 93 (2)| 00:00:02 | | | Q1,04 | PCWP | |
| 35 | PX RECEIVE | | 344K| 38M| | 1392 (2)| 00:00:26 | | | Q1,08 | PCWP | |
| 36 | PX SEND HASH | :TQ10005 | 344K| 38M| | 1392 (2)| 00:00:26 | | | Q1,05 | P->P | HASH |
| 37 | JOIN FILTER USE | :BF0001 | 344K| 38M| | 1392 (2)| 00:00:26 | | | Q1,05 | PCWP | |
|* 38 | HASH JOIN BUFFERED | | 344K| 38M| | 1392 (2)| 00:00:26 | | | Q1,05 | PCWP | |
| 39 | PX RECEIVE | | 93791 | 4671K| | 7 (0)| 00:00:01 | | | Q1,05 | PCWP | |
| 40 | PX SEND HASH | :TQ10001 | 93791 | 4671K| | 7 (0)| 00:00:01 | | | Q1,01 | P->P | HASH |
| 41 | PX BLOCK ITERATOR | | 93791 | 4671K| | 7 (0)| 00:00:01 | | | Q1,01 | PCWC | |
|* 42 | TABLE ACCESS FULL | WC_PRODUCT_HIER_DH | 93791 | 4671K| | 7 (0)| 00:00:01 | | | Q1,01 | PCWP | |
|* 43 | HASH JOIN | | 894K| 57M| | 1384 (2)| 00:00:25 | | | Q1,05 | PCWP | |
| 44 | JOIN FILTER CREATE | :BF0002 | 243K| 1904K| | 48 (3)| 00:00:01 | | | Q1,05 | PCWP | |
| 45 | PX RECEIVE | | 243K| 1904K| | 48 (3)| 00:00:01 | | | Q1,05 | PCWP | |
| 46 | PX SEND HASH | :TQ10002 | 243K| 1904K| | 48 (3)| 00:00:01 | | | Q1,02 | P->P | HASH |
| 47 | PX BLOCK ITERATOR | | 243K| 1904K| | 48 (3)| 00:00:01 | | | Q1,02 | PCWC | |
|* 48 | TABLE ACCESS FULL | W_PRODUCT_D | 243K| 1904K| | 48 (3)| 00:00:01 | | | Q1,02 | PCWP | |
| 49 | PX RECEIVE | | 894K| 50M| | 1336 (2)| 00:00:25 | | | Q1,05 | PCWP | |
| 50 | PX SEND HASH | :TQ10003 | 894K| 50M| | 1336 (2)| 00:00:25 | | | Q1,03 | P->P | HASH |
| 51 | JOIN FILTER USE | :BF0002 | 894K| 50M| | 1336 (2)| 00:00:25 | | | Q1,03 | PCWP | |
|* 52 | HASH JOIN | | 894K| 50M| | 1336 (2)| 00:00:25 | | | Q1,03 | PCWP | |
| 53 | PX RECEIVE | | 292 | 3504 | | 136 (0)| 00:00:03 | | | Q1,03 | PCWP | |
| 54 | PX SEND BROADCAST LOCAL| :TQ10000 | 292 | 3504 | | 136 (0)| 00:00:03 | | | Q1,00 | P->P | BCST LOCAL |
| 55 | PX BLOCK ITERATOR | | 292 | 3504 | | 136 (0)| 00:00:03 | | | Q1,00 | PCWC | |
|* 56 | TABLE ACCESS FULL | W_DAY_D | 292 | 3504 | | 136 (0)| 00:00:03 | | | Q1,00 | PCWP | |
| 57 | PX BLOCK ITERATOR | | 4801K| 215M| | 1199 (2)| 00:00:22 | 1 | 11 | Q1,03 | PCWC | |
|* 58 | TABLE ACCESS FULL | W_ORDERITEM_TMP_F | 4801K| 215M| | 1199 (2)| 00:00:22 | 1 | 44 | Q1,03 | PCWP | |
Note
- dynamic sampling used for this statement (level=5)
Statistics
498 recursive calls
2046 db block gets
1193630 consistent gets
74398 physical reads
0 redo size
655170 bytes sent via SQL*Net to client
11761 bytes received via SQL*Net from client
541 SQL*Net roundtrips to/from client
64 sorts (memory)
0 sorts (disk)
8090 rows processed
SQL>So my question is if, cardinality estimates are way off, is that an indicator that the explain plans being generated are sub-optimal?
Can you provide me with some tips or links to blog post or books on how I approach tuning such queries where cardinalities are not good?
Edited by: qqq on Apr 7, 2013 2:27 PMAs already asked in your other thread:
Please see the FAQ for how to post a tuning request and the information that you need to provide.
Part of that information is:
1. DDL for the table and indexes
2. The query being used
3. row counts for the table and for the predicates used in the query
4. info about stats. You did update the table and index stats didn't you?
5. The 'actual' execution plans.
An explain plan just shows what Oracle 'thinks' it is going to do. The actual plans show what Oracle actually 'did' do. Just because Oracle expected to save doesn't mean the savings were actually achieved.
When you post the plans use on the line before and on the line after to preserve formatting.
Your partial code is virtually unusable because of the missing conditions in the predicates. You need to use '!=' for 'not equals' if that's what those missing conditions are.
Please edit your post to use code tags, add the missing conditions and provide the other information needed for a tuning request. -
COMPRESSING WEBLOGIC CLIENT JAR FILE
The Weblogic documentation recommends using the weblogic.jar to run client Java
application that access EJB/JMS/.... As we all know, this is a very large jar
file and the remote client is not using all of the classes in it. Are there any
tools to help us extract the required weblogic client class and build a smaller
JAR file for deployment to client machine. Has anyone run into similarThis whitepaper describes currently available options:
http://dev2dev.bea.com/resourcelibrary/whitepapersdetail.jsp?highlight=whitepapers&filePath=components%2Fdev2dev%2Fresourcelibrary%2Fwhitepapers%2Fwhitepapersmallfootprintclient.htm
Nick Minutello <[email protected]> wrote:
There are some Weblogic tools like utils.zipToJar (or something like that) that
will take the -verbose output of your client and extract the correct classes out
of weblogic.jar. This is a bit risky, because you have to make sure that you exercise
EVERY code path, to make sure that you dont get a ClassNotFoundException at runtime.
Its poor, but it can work.
Otherwise.... you are screwed. You can use RMI-IIOP, but that wont help you with
JMS.
This has been a long-running issue with Weblogic that doesnt seem to have a simple
solution. I know some of their Professional Service people have been pushing for
it since WLS5.1...
I sincerely hope they come up with a solution soon. Can you imagine what our users
will think when they have to wait for the 37 Meg jar in WLS7 to download (we use
Java WebStart)...
-Nick
"brian chan" <[email protected]> wrote:
The Weblogic documentation recommends using the weblogic.jar to run client
Java
application that access EJB/JMS/.... As we all know, this is a very large
jar
file and the remote client is not using all of the classes in it. Are
there any
tools to help us extract the required weblogic client class and build
a smaller
JAR file for deployment to client machine. Has anyone run into similar
Dimitri -
SUS - Some Clients Take a Long Time to Check for Updates
We have the newest XSERVE, running 10.6, with 12GB of RAM. We use it as our software update server and for some reason, some clients take a long time to check for updates. I'm talking anywhere from an 30 mins to an hour. I can't figure it out. Some clients are quick, some are extremely long.
Now if I tell the client to just check Apple for updates, it takes a few seconds.
Can anyone offer any suggestions?
Thanks.After another restart, firefox has begun throwing errors when starting from terminal. the error reported is:
/opt/kde/bin/skim: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
This is printed 5 times, then gives up and firefox loads quickly after. So this appears to be an issue with skim and libpng similar to other problems being reported.
Some research uncovered that skim is no longer supported and is part of my kdemod3 install, however until this update it was working fine under kdemod4. -
11g ODBC SQLGetTypeInfo result COLUMN_SIZE column being returned as 64bit v
Using InstantClient 11.2 ODBC I'm getting odd behavior for the SQLGetTypeInfo call on a 64bit Win2K3 machine.
When binding the result column 2 (COLUMN_SIZE) as an integer (as per the ODBC spec), it looks like this is being returned in a 64bit word (even though the buffer buffer size is specified as a SQLUINTEGER).
This is obviously causing some issues - is this a known bug?
My solution is to move this value's storage to the end of the struct I'm using to store all the columns of the result and add some additional padding but my concern is that there are other areas where the ODBC interface is not following the ODBC specification. Is there a list of known exceptions to the ODBC specification for the oracle instant client drivers for 64 bit architectures?Thanks. That's doing the trick.
We can use PASSTHROUGH PACKAGE to change the SQL_MODE for a particular session using the MySQL statement: set session sql_mode='ANSI_QUOTES';
It will then look like:
- first setting in the session ANSI_SQL using PASSTHROUGH:
DECLARE
ret integer;
c integer;
BEGIN
c := DBMS_HS_PASSTHROUGH.OPEN_CURSOR@mysql;
DBMS_HS_PASSTHROUGH.PARSE@mysql(c, 'SET SESSION SQL_MODE=''ANSI_QUOTES'';'));
ret := DBMS_HS_PASSTHROUGH.EXECUTE_NON_QUERY@mysql(c);
dbms_output.put_line(ret ||' passthrough output');
DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@mysql(c);
END;
REMARK: The passthrough statement SET SQL_MODE=''ANSI_QUOTES''; uses 2 single quotes ... !!no DOUBLE QUOTES !!
Now selects works using double qoutes:
SQL> select * from "test"@mysql;
col1 col2
Hello 1
As soon as I disconnect and connect again and try to run the select without the PASSTHROUGH we get the old error again:
SQL> select * from "test"@mysql;
select * from "test"@mysql
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[MySQL][ODBC 3.51 Driver][mysqld-5.0.37-community]You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server version for the
right syntax to use near '"col1",A1."col2" FROM "test" A1' at line 1
ORA-02063: preceding 2 lines from MYSQL
So using PASSTHROUGH at the beginning of each session allows us to change the ANSI mode for a particular session only without affecting all the other clients and might be a good workaround. -
Empty packaging material return
Hi,
We are working in a beer manufacturing industry....here manufactured beer is packed in to three types of packaging...
1. Can
2. Bottle
3. Keg...
So basically we have three finished codes..each finished material is having in the BOM components as bulk beer and other packaging materials like CAN, Bottle, keg.... now filled finished product sales is done...after sales then after some time they return the empty containers like bottle and Keg to plant..which are used again for re filling.... for this return they are paid money... now how to map this in to SAP....
what we proposed is when the empty packaging material comes make a manual purchase order with packaging material code and qty then do GR with 101 movement..then subsequently make the payment against the PO.....
is this the correct solution???..can somebody share ur previous experiences who worked on this scenario...is there any SAP best practices available for this scenario ???...
Thanks
KumarI think this situation can be handled by Returnable Packaging - Sales.
I haven't worked with returnable packaging, But I can assume your business process goes to returnable packaging.
Read the SAP help, if your business process is different, then you can elaborate.
Regards
Dev -
Creating a generic class with a constructor that takes an array of objects
I am relatively new to java and want to build a quick utility class that can generate a Run Length Encoding of any object. The idea is to take an array of objects of type "O" and then encode a string of objects that are "equal" to each other as an integer that counts the number of such equal instances and a single copy of the instance. This has the potential to very quickly reduce the size of some objects that I want to store. I would like to implement this class as a generic.
public class RunLengthEncoding<O> {
private class RLEPair {
private int length;
private O object;
public RunLengthEncoding(O[]) {
}As you can see, I need to make a constructor that takes an array of type "O". Is this possible to do? I can't seem to find the right syntax for it.
Thanks,
SeanSorry. Obvious answer:
public RunLengthEncoding(O[] oarray) {Again, sorry for the noise. -
How can i exclude information pages from being printed in a dynamic XML form?
Hi there,
i am building a dynamic XML form in Adobe LiveCycle Designer ES2.
In this form there are pages with information that help the end user fill out the form, but to use - those who process the forms after they have been sent to us - these pages with information are irrelevant.
Is there a way to tell the form to omit these pages when printing.
Currently i have set the pages mentioned to be only visable on-screen. But doing so results in an empty page being printed (only the master page information is visable.)
Any ideas how i can solve this issue?
Thank you.Create a new master page and set that page to visible screen only. Set your subforms to use that master.
Maybe you are looking for
-
How to open the proper port for your xbox 360 on a NVG589 router for optimal online gaming
This took me a while to figure out on my own, so hopefully this will save someone else the trouble. My Xbox 360 said my setting were moderate. Step 1: In your internet browser, type this http://192.168.1.254 into your address bar Step 2: Click on th
-
Can anyone plz clarify the following querry :- If my flat file has three header level records then in that case there will be three IDOC (MInOccurence = 1 and MaxOccurence = 1) generated at R/3 level right. How XI send these IDOCS does it send them o
-
Why can't I edit some of my iPhone 4 iCal events?
Some of the events in the iPhone 4 version of my iCal calendar do not have an "edit" button or capability. Yet, others do. All events appear and can be edited on my May Air iCal and changes there appear on the iPhone 4 -- but there lack an edit butto
-
Basic Encore CS3 Tutorials?
Hello! I'm a brand new Encore CS3 owner and user. I have learned Premiere Pro, and love it, but am having fits and starts trying to get Encore to do even the most elementary menu. What i need is a tutorial (hopefully free!) that guides you through th
-
Hi, so I can't use OPC server because the connection that it tries to do always fails and I get an timeout. What am I missing? In my own computer OPC server doesn't do that. I don't even know what that runtime thing does but I figured it needs to be