Skip to main content

Posts

Showing posts from July, 2011

Some facts and Figures of WCF

SOAP Message in WCF: 1.        The max size of SOAP message in WCF is 9,223,372,036,854,775,807 bytes. Including metadata. 2.        For actual user data we can use 2,147,483,647 bytes out of it. 3.        With default setting WCF uses only 65536 bytes. 4.        We can change it by setting maxReceivedMessageSize in clients app.config file.    5.        So selection of data types in Data Contract and Data table will matter a lot! 6.       Reference :   http://blogs.msdn.com/drnick/archive/2006/03/16/552628.aspx          http://blogs.msdn.com/drnick/archive/2006/03/10/547568.aspx       “Amazing blog for WCF!” Data Contract: 1.        By Default WCF can serialize 65536 DataMember. 2.        We can change it to max  2147483646. 3.       How?  Please go to: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/4a81a226-175b-41d3-864a-181792c71ffe Tracing WCF service message: 1.       Enable message log of WCF: http://www.avingtonsolutions.com/blog/post/2008/07/25/Tracing-SOAP-Message

Conventional and Direct-Path Insert

Today I came across one interesting scenario, Where was using Insert statement with hint /*+ APPEND */. With traditional insert statement we can use it like: INSERT INTO SHIPMENTLIST (<<Column list>>) VALUES (<<List of Values>>); INSERT INTO SHIPMENTLIST (<<Column list>>) VALUES (<<List of Values>>); . . INSERT INTO SHIPMENTLIST (<<Column list>>) VALUES (<<List of Values>>); However when you use same with hint /*+ APPEND */ INSERT /*+ APPEND */ INTO SHIPMENTLIST (<<Column list>>) VALUES (<<List of Values >>); INSERT /*+ APPEND */ INTO SHIPMENTLIST (<<Column list>>) VALUES (<<List of Values >>); Oracle raises run time exception: ORA-12838: cannot read/modify an object after modifying it in parallel.   This happens because, when we use the Append hint oracle uses direct-path INSERT and Data is written directly into datafiles, bypassing the buf

Result Cache in Oracle

Oracle 11g has introduced another feature, is RESULT_CACHE. By using this you can actually ask oracle to cache the result of the function call that you made with actual  parameter values.  Whenever you call the same function next time, Oracle will not execute the function again but, will return the result from Cache. This caching is at Server level. So  different sessions can share their results.  More On This..

Distributed transaction in Oracle ( Over Oracle DBLink)

To fetch the data from one server to and other Oracle server over DBLink, I experienced the following facts of Oracle Distributed transactions: Security issue: -           We cannot create Public synonym for the remote object accessed over Private DBLink of other Database.   -           It’s allowed to create private synonym for remote object, but you cannot grant the access over this synonym to any other schema. If you try to provide the grants to other schema Oracle raises an error:              [ORA-02021: DDL operations are not allowed on a remote database] “In an all you can access remote objects over private DBLink in the same schema where DBLink is created”. Fetching the Ref Cursor at Remote site:                   Let’s say we have two sites involved in Distributed transaction, Server1 and Server2. The Ref Cursor opened on Server1 procedure, cannot be fetched at Server2 site. If we try to fetch this cursor oracle raises an exception:      [ORA-02055: distributed updat