Packet out of sequence Query
Hi, In our MPLS network we are planning two add one more WAN link between two nodes of same bw as of existing link, say two WAN link of 200Mbps. As a IGP we are running OSPF and MPLS enabled on the WAN. If the traffic gets load balance on both the parallel link then will the packet out of sequence issue appears ?
If this is introducing the packet out of sequence issue then is there any way to avoid the same but have to use both the wan link for the traffic flow.
Need the information
Regards,
Nilesh
Hello Nilesh,
load balancing is flow based also on an MPLS network.
Load balancing criteria of MPLS frames is based on internal MPLS label (VPN label) for MPLS L3 VPN service.
In any case, whatever is the type of MPLS service there will not be out of order issues as load balancing will be flow based and packets belonging to the same flow will be switched over the same path
Hope to help
Giuseppe
Similar Messages
-
ORACLE 11g + PHP5 problem: "fetch out of sequence" on remote database link
Hi!
I have a new server with oracle 11g (11.1.0.7) database and apache/php5 (actual build) on linux.
connection type is dedicated.
when doing a connection to a remote AS/400 database I always get this error:
"Warning: oci_fetch_array() http://function.oci-fetch-array: ORA-01002: fetch out of sequence ORA-02063: preceding line from..."
when doing the same simple "select * from database link" at my old server with oracle 9i and apache/php5 no problem occurrs.
this happens at AS/400 database link only. normal oracle database links work fine.
Anyone an idea how to solve this problem or where the problem is????
further info:
when doing " select * from [ database link ] where rownum < 11 " it works, but when doing the query with more than 10 results I get the error. Any idea?
bye,
Oliver
Edited by: user501548 on 10.10.2008 02:20well a fetch out of sequence usually indicates that a cursor has been closed before the process has finished fetching or some such thing.
I'm not aware of there being a specific problem with the situation you outline, but maybe if you could provide all the connection setup and how you are trying to connect that may give a better idea.
Also, you may be better asking on the General Database Discussions forum as this isn't really a SQL or PL/SQL problem -
Oracle Report raises ORA-01002 Fetch out of sequence
ORA-01002 Fetch out of sequence in runtime execution of
oracle report 3.0 and 2.5 in client/server environment.
The same sql query works in sqlplus without any problem.
If I change the criteria (where clause) the error sometime
disappear. I can't explain this weird behaviour.
Oracle server version is 7.1.5 on Digital VMS.
Any Help will be welcome.
nullORA-01002 Fetch out of sequence in runtime execution of
oracle report 3.0 and 2.5 in client/server environment.
The same sql query works in sqlplus without any problem.
If I change the criteria (where clause) the error sometime
disappear. I can't explain this weird behaviour.
Oracle server version is 7.1.5 on Digital VMS.
Any Help will be welcome.
null -
ORACLE 11g + PHP5 problem: "fetch out of sequence" on i5/OS AS/400
Hi!
I have a big problem using a database connection to i5 AS/400 with PHP5 OCI8 interface by Oracle 11g:
when doing a simple "select * from (as400_database_link)" I get this return: "fetch out of sequence... preceding line..."
I never had this problem with 9i, old transparent gateway.
BUT:
when doing for example a "select * from (as400_database_link) where rownum < 1000000" it works fine without problems.
Anyone an idea how to eliminate this stupid "where rownum < 100000" behaviour?
I would have to add this in many select statements... ;(
bye,
OliverTach,
how do you call oci_execute ?
try oci_execute($query,OCI_DEFAULT);
I had the same problem with adodb
$q = " select * from elephant@africa";
$db->GetAll($q);
Failed with the same error.
ADODB called oci_execute with OCI_COMMIT_ON_SUCCESS,which caused my error.
$q = " select * from elephant@africa";
$db->BeginTrans();
$db->GetAll($q);
$db->CommitTrans(); (or rollback);
did the job,because BeginTrans changed oci_execute to run with OCI_DEFAULT.
Hope this helps,
gw
Edited by: unficyp123 on Oct 20, 2008 2:51 PM -
Java.sql.SQLException: ORA-01002: fetch out of sequence
We are getting 'Fetch out of sequence' error whrn we try to execute a 'for update' query.
We are first inserting values into the DLX_ASSET table and if there is image to be inserted the particualr row is fetched using the query. The insert query inserts values into the database.
'SELECT HIGH_RES_IMAGE FROM DLX_ASSET WHERE ASSET_ID ="+assetId+ " FOR UPDATE'. While executing this query we are getting this exception. This is not happening when we are trying it from our local machine. But its happening everywhere else where its deployed.
We are using Websphere Application Server 6 and Oracle 9i. We have set autommit to false before the method is called and are commiting the transaction only after the whole set of queries are executed.
Please see below the code snippet,
/* UPDATE HIGH RESOLUTION IMAGE INTO DLX_ASSET TABLE */
logger.logInfo("inside IF condition ,,,,,,,,,,,"+assetId);
String query ="SELECT HIGH_RES_IMAGE FROM DLX_ASSET WHERE ASSET_ID ="+assetId+ " FOR UPDATE ";
logger.logInfo("QUERY is...."+query);
logger.logInfo("Connection closed:"+ con.isClosed());
psHighResObj =(OraclePreparedStatement) con.prepareStatement(query);
logger.logInfo("inside updating high res AFTER prepare statement"+psHighResObj);
rsHighRes = (OracleResultSet) psHighResObj.executeQuery(); logger.logInfo("inside updating high res image 1");
while (rsHighRes.next()) {
logger.logInfo("inside while high res image 2");
highResImg =(OrdImage)rsHighRes.getCustomDatum(1,OrdImage.getFactory());
highResImg.loadDataFromInputStream(assetCustomTo.getHighResolutionImageIn());
assetCustomTo.getHighResolutionImageIn().close();
logger.logInfo("before update high res");
UPDATE_QRY = "UPDATE DLX_ASSET SET HIGH_RES_IMAGE = ? WHERE ASSET_ID=" + assetId;
stmt1 =(OraclePreparedStatement) con.prepareCall(UPDATE_QRY);
highResImg.setSource(assetCustomTo.getHighresFileType(),"",assetCustomTo.getSys_file_name1());
highResImg.setContentLength(Integer.parseInt(assetCustomTo.getHighresFileSize()));
highResImg.setProperties();
logger.logInfo(" after update query asset id: " + assetId);
logger.logInfo(" query high res:: " + UPDATE_QRY);
stmt1.setCustomDatum(1, highResImg);
stmt1.execute();
logger.logInfo("after update high res");
//checking if thumbnail is present: if bulk upload thumb nail won't be present
the exception is occuring in the line 'rsHighRes = (OracleResultSet) psHighResObj.executeQuery();'
This is exception trace
java.sql.SQLException: ORA-01002: fetch out of sequence
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java(Inlined Compiled Code))
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java(Compiled Code))
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java(Compiled Code))
at oracle.jdbc.ttc7.TTC7Protocol.fetch(TTC7Protocol.java:1198)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2400)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527)
at com.deluxe.imax.dataaccess.impl.extended.TelevisionAssetCustomDAOImpl.createWebElectronicTrailersAsset(Unknown Source)
at com.deluxe.imax.business.television.ejb.TelevisionFacadeJBean.createWebElectronicTrailersAsset(Unknown Source)
at com.deluxe.imax.business.television.handler.TelevisionHandler.createWebElectronicTrailersAsset(Unknown Source)
at com.deluxe.imax.business.television.action.WebNewAction.processExecute(Unknown Source)
at com.deluxe.imax.business.framework.BaseAction.execute(Unknown Source)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1284)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1241)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:136)
at com.deluxe.imax.business.framework.security.SecurityFilter.doFilter(Unknown Source)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:82)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:671)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3003)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:221)
at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:210)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1958)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:88)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:472)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.ja
Please share your feedback.
Thanks in advance!
Edited by: Sanu Sasidharan on May 11, 2011 4:26 AMHi Peter,
We tried pointing to the same database from local as well as QA. Works from local but not from QA.
assetId is the generated primary key in the same method.
Yes the exception is thrown from execute statement itself. the logger put just after the execute is not coming.
This is the method
public boolean createWebElectronicTrailersAsset(TelevisionResultDTO[] teleResultDTO, OracleConnection con) throws DAOException {
methodName ="createWebElectronicTrailersAsset(TelevisionResultDTO[] teleResultDTO,OracleConnection con) :: ";
//Value to be returned by method
boolean createInd = false;
OraclePreparedStatement psHighResObj = null;
OraclePreparedStatement psThumbnailObj = null;
OracleResultSet rsHighRes = null;
OracleResultSet rsThumbnail = null;
PreparedStatement psmt = null;
OraclePreparedStatement stmt1 = null;
OraclePreparedStatement stmt2 = null;
OrdImage highResImg = null;
OrdImage thumbnailImg = null;
ImaxGroupsTO groupsTO = null;
try {
long tvAssetId = 0;
long assetId = 0;
long cst_dwnld_asset_id = 0;
AssetCustomTO assetCustomTo = null;
AssetCustomDownloadTO assetCustDwnldTO = null;
CustomTVAssetTO tvAssetTo = null;
String DLX_ASSET_QRY = "";
String UPDATE_QRY = "";
String DLX_ASSET_TV_QRY = "";
String DLX_CUSTOM_DOWNLOAD_ASSET = "";
int k = 1;
for (int iCount = 0; iCount < teleResultDTO.length; iCount++) {
tvAssetId = (int) OraclePKGenerator.getInstance().getKey(InternalConstants.TV_ASSET_SEQUENCE);
assetId =(long) OraclePKGenerator.getInstance().getKey(InternalConstants.ASSET_SEQUENCE);
assetCustomTo = teleResultDTO[iCount].getAssetCustomTO();
tvAssetTo = teleResultDTO[iCount].getTv_Asset();
groupsTO= teleResultDTO[iCount].getGroupsTO();
if (assetCustomTo.getHighResolutionImageIn() != null) {
DLX_ASSET_QRY ="INSERT INTO DLX_ASSET("
+ "ASSET_ID,"
+ "CREATED_BY,"
+ "CREATED_DATE,"
+ "REVISED_BY,"
+ "REVISED_DATE,"
+ "FILE_NAME,"
+ "FILE_SIZE,"
+ "FILE_TYPE,"
+ "SYS_FILE_NAME,"
+ "HIGH_RES_IMAGE,"
+ "THUMBNAIL_IMAGE,"
+ "ASSET_STATUS_ID,"
+ "DMX_PART1_REF,"
+ "DMX_PRODUCT_ID_REF,"
+ "DMX_PRODUCT_DESC_REF,"
+ "ASSET_AVAIL_1_IND,"
+ "DMX_PART_2,"
+ "DMX_PRODUCT_2,"
+ "DMX_PRODUCT_DESC_2,"
+ "ASSET_AVAIL_2_IND,"
+ "EFFECTIVE_DATE,"
+ "EXPIRATION_DATE,"
+ "FILE_NAME1,"
+ "SYS_FILE_NAME1,"
+ "ASSET_TYPE_ID,"
+ "MATERIALS_CATEGORY,"
+ "PART_1_NOTES,"
+ "PART_2_NOTES,"
+ "PHY_ORDER_STATUS)"
+ "VALUES (?,?,SYSDATE,?,SYSDATE,?,?,?,?,ORDSYS.ORDImage.init(),"
+" ORDSYS.ORDImage.init(),?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
}else if(){
// condition if images are not uploaded
psmt = con.prepareStatement(DLX_ASSET_QRY);
k=1;
psmt.setLong(k++, assetId);
psmt.setString(k++, assetCustomTo.getCreated_by());
psmt.setString(k++, assetCustomTo.getRevised_by());
if(assetCustomTo.getAssetTextIn()!=null ){
psmt.setString(k++, assetCustomTo.getFile_name());
psmt.setString(k++, assetCustomTo.getFile_size());
psmt.setString(k++, assetCustomTo.getFile_type());
psmt.setString(k++, assetCustomTo.getSys_file_name());
/* UPLOAD PREVIEW VIDEO FILE INTO FILE SYSTEM .....*/
Util.upLoadFile(assetCustomTo.getAssetTextIn(),assetCustomTo.getSys_file_name());
}else if(assetCustomTo.getAssetTextIn()==null && assetCustomTo.getSys_file_name() != null
&& assetCustomTo.getSys_file_name().trim().length() != 0){
psmt.setString(k++, assetCustomTo.getFile_name());
psmt.setString(k++, assetCustomTo.getFile_size());
psmt.setString(k++, assetCustomTo.getFile_type());
psmt.setString(k++, assetCustomTo.getSys_file_name());
} else{
psmt.setNull(k++,Types.VARCHAR);
psmt.setNull(k++,Types.VARCHAR);
psmt.setNull(k++,Types.VARCHAR);
psmt.setNull(k++,Types.VARCHAR);
psmt.setLong(k++, assetCustomTo.getAsset_status_id());
if(assetCustomTo.getDmx_product_desc_1()!=null && assetCustomTo.getDmx_product_desc_1().trim().length()!=0){
psmt.setLong(k++, assetCustomTo.getDmx_part_1());
psmt.setLong(k++, assetCustomTo.getDmx_productId_1());
psmt.setString(k++, assetCustomTo.getDmx_product_desc_1());
psmt.setString(k++, assetCustomTo.getAsset_order_status_1());
}else{
psmt.setNull(k++,Types.INTEGER);
psmt.setNull(k++,Types.INTEGER);
psmt.setNull(k++,Types.VARCHAR);
psmt.setNull(k++,Types.VARCHAR);
if(assetCustomTo.getDmx_product_desc_2()!=null && assetCustomTo.getDmx_product_desc_2().trim().length()!=0){
psmt.setLong(k++, assetCustomTo.getDmx_part_2());
psmt.setLong(k++, assetCustomTo.getDmx_productId_2());
psmt.setString(k++, assetCustomTo.getDmx_product_desc_2());
psmt.setString(k++, assetCustomTo.getAsset_order_status_2());
}else{
psmt.setNull(k++,Types.INTEGER);
psmt.setNull(k++,Types.INTEGER);
psmt.setNull(k++,Types.VARCHAR);
psmt.setNull(k++,Types.VARCHAR);
if(assetCustomTo.getEffectiveDate()!=null){
psmt.setTimestamp(k++, assetCustomTo.getEffectiveDate());
}else{
psmt.setNull(k++,Types.TIMESTAMP);
if(assetCustomTo.getExpirationDate()!=null){
psmt.setTimestamp(k++, assetCustomTo.getExpirationDate());
}else{
psmt.setNull(k++,Types.TIMESTAMP);
psmt.setString(k++, assetCustomTo.getHighresFileName());
if(assetCustomTo.getSys_file_name1()!=null && assetCustomTo.getSys_file_name1().trim().length()!=0){
psmt.setString(k++, assetCustomTo.getSys_file_name1());
}else{
psmt.setNull(k++, Types.VARCHAR);
psmt.setLong(k++, assetCustomTo.getAsset_type_id());
psmt.setLong(k++, assetCustomTo.getMaterialCategory());
if(assetCustomTo.getPart_notes_1()!=null && assetCustomTo.getPart_notes_1().trim().length()!=0){
psmt.setString(k++, assetCustomTo.getPart_notes_1());
}else{
psmt.setNull(k++,Types.VARCHAR);
if(assetCustomTo.getPart_notes_2()!=null && assetCustomTo.getPart_notes_2().trim().length()!=0){
psmt.setString(k++, assetCustomTo.getPart_notes_2());
}else{
psmt.setNull(k++,Types.VARCHAR);
if(assetCustomTo.getDmx_product_desc_1()!=null){
psmt.setLong(k++,assetCustomTo.getPhy_asset_status());
}else{
psmt.setNull(k++,Types.INTEGER);
psmt.execute();
if (assetCustomTo.getHighResolutionImageIn() != null) {
/* UPDATE HIGH RESOLUTION IMAGE INTO DLX_ASSET TABLE */
logger.logInfo("inside IF condition ,,,,,,,,,,,"+assetId);
String query ="SELECT HIGH_RES_IMAGE FROM DLX_ASSET WHERE ASSET_ID ="+assetId+ " FOR UPDATE ";
psHighResObj =(OraclePreparedStatement) con.prepareStatement(query);
logger.logInfo("inside updating high res AFTER prepare statement"+psHighResObj);
rsHighRes = (OracleResultSet) psHighResObj.executeQuery();
while (rsHighRes.next()) {
highResImg =(OrdImage)rsHighRes.getCustomDatum(1,OrdImage.getFactory());
highResImg.loadDataFromInputStream(assetCustomTo.getHighResolutionImageIn());
assetCustomTo.getHighResolutionImageIn().close();
UPDATE_QRY = "UPDATE DLX_ASSET SET HIGH_RES_IMAGE = ? WHERE ASSET_ID=" + assetId;
stmt1 =(OraclePreparedStatement) con.prepareCall(UPDATE_QRY);
highResImg.setSource(assetCustomTo.getHighresFileType(),"",assetCustomTo.getSys_file_name1());
highResImg.setContentLength(Integer.parseInt(assetCustomTo.getHighresFileSize()));
highResImg.setProperties();
stmt1.setCustomDatum(1, highResImg);
stmt1.execute();
The connection in the method is passed from the service layer.
Thanks
Edited by: Sanu Sasidharan on May 12, 2011 2:30 AM -
ORA-01002/ Fetch out of sequence on lazy loading
Hello,
We are facing an oracle SQLException (ORA-01002: fetch out of sequence)
while we are trying to get a field (retrieved via lazy loading) from an
object that was retrieved using a kodoquery.
This error only occurs during performance testing under a heavy load.
(100 concurrent users). For each thread we get a new persistencemanager
from the factory. And we have put the multithreaded option to true.
Can anyone help us with this problem?
Thanks in advance,
Kind Regards,
Niels Soeffers
Caused by: java.sql.SQLException: ORA-01002: fetch out of sequence
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
at
oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:1027)
at
oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:291)
at
oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:213)
at
com.solarmetric.jdbc.DelegatingResultSet.next(DelegatingResultSet.java:97)
at kodo.jdbc.sql.ResultSetResult.nextInternal(ResultSetResult.java:151)
at kodo.jdbc.sql.AbstractResult.next(AbstractResult.java:123)
at kodo.jdbc.sql.Select$SelectResult.next(Select.java:2236)
at
kodo.jdbc.meta.AbstractCollectionFieldMapping.load(AbstractCollectionFieldMapping.java:592)
at kodo.jdbc.runtime.JDBCStoreManager.load(JDBCStoreManager.java:521)
at
kodo.runtime.DelegatingStoreManager.load(DelegatingStoreManager.java:133)
at kodo.runtime.ROPStoreManager.load(ROPStoreManager.java:79)
at kodo.runtime.StateManagerImpl.loadFields(StateManagerImpl.java:3166)
at kodo.runtime.StateManagerImpl.loadField(StateManagerImpl.java:3265)
at kodo.runtime.StateManagerImpl.isLoaded(StateManagerImpl.java:1386)
at
com.ardatis.ventouris.domain.OntvangstReeks.jdoGetontvangstTransacties(OntvangstReeks.java)
at
com.ardatis.ventouris.domain.OntvangstReeks.getStatus(OntvangstReeks.java:72)
at
com.ardatis.ventouris.service.financien.transfer.FinancienTOAssembler.getOntvangstReeksBaseTO(FinancienTOAssembler.java:71)
at
com.ardatis.ventouris.service.financien.transfer.FinancienTOAssembler.getOntvangstReeksBaseTOs(FinancienTOAssembler.java:84)
at
com.ardatis.ventouris.service.financien.FinancienManagerImpl.getOntvangstReeksBaseTOs(FinancienManagerImpl.java:241)
at
com.ardatis.ventouris.service.financien.ejb.FinancienManagerBean.getOntvangstReeksBaseTOs(FinancienManagerBean.java:62)
at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.sun.enterprise.security.SecurityUtil$2.run(SecurityUtil.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at
com.sun.enterprise.security.application.EJBSecurityManager.doAsPrivileged(EJBSecurityManager.java:950)
at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:158)
at
com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:128)
at $Proxy31.getOntvangstReeksBaseTOs(Unknown Source)
at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:123)We are using Oracle 10g and have tried multiple dirvers. (classes12.jar,
ojdbc14.jar)
Our kodo.properties ( actually the ra.xml we supply with the kodo.rar )
<connector>
<display-name>KodoJDO</display-name>
<description>Resource Adapter for integration of the Kodo Java Data
Objects (JDO) implementation with J2EE 1.3 compliant managed
environments</description>
<vendor-name>Solarmetric, Inc.</vendor-name>
<spec-version>1.0</spec-version>
<eis-type>jdo</eis-type>
<version>1.0</version>
<license>
<description>
See http://www.solarmetric.com for terms and license conditions.
</description>
<license-required>true</license-required>
</license>
<resourceadapter>
<managedconnectionfactory-class>kodo.jdbc.ee.JDBCManagedConnectionFactory</managedconnectionfactory-class>
<connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>
<connectionfactory-impl-class>kodo.jdbc.ee.JDBCConnectionFactory</connectionfactory-impl-class>
<connection-interface>javax.resource.cci.Connection</connection-interface>
<connection-impl-class>kodo.runtime.PersistenceManagerImpl</connection-impl-class>
<transaction-support>XATransaction</transaction-support>
<config-property>
<description>A comma-separated list of query aggregate listeners
to add to the default list of extensions. Each listener must implement
the kodo.jdbc.query.JDBCAggregateListener interface.</description>
<config-property-name>AggregateListeners</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The kodo.jdbc.meta.ClassIndicator to use by default
for new mappings. The class indicator is responsible for tracking the
concrete class or subclass implemented by the object stored in each row of
a table.</description>
<config-property-name>ClassIndicator</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>in-class-name</config-property-value>
</config-property>
<config-property>
<description>The kodo.util.ClassResolver implementation that
should be used for JDO class resolution. Defaults to a JDO spec-compliant
resolver.</description>
<config-property-name>ClassResolver</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>spec</config-property-value>
</config-property>
<config-property>
<description>Details about various compatibiity levels for the
current environment.</description>
<config-property-name>Compatibility</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>The class name of either the JDBC java.sql.Driver, or
an instance of a javax.sql.DataSource to use to connect to the non-XA data
source.</description>
<config-property-name>Connection2DriverName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The password for the user specified in
Connection2UserName</description>
<config-property-name>Connection2Password</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of properties to be passed to
the non-XA JDBC Driver when obtaining a Connection. Properties are of the
form "key=value". If the given JDBC Driver class is a DataSource, these
properties will be used to configure the bean properties of the
DataSource. </description>
<config-property-name>Connection2Properties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The URL for the non-XA data source.</description>
<config-property-name>Connection2URL</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The username for the connection listed in
Connection2URL.</description>
<config-property-name>Connection2UserName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of
com.solarmetric.jdbc.ConnectionDecorator implementations to install on all
connection pools.</description>
<config-property-name>ConnectionDecorators</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The class name of either the JDBC java.sql.Driver, or
an instance of a javax.sql.DataSource to use to connect to the data
source.</description>
<config-property-name>ConnectionDriverName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The JNDI name of the connection factory to use for
finding non-XA connections. If specified, this is the connection that
will be used for obtaining sequence numbers.</description>
<config-property-name>ConnectionFactory2Name</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>jdbc/VentourisNonXA</config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of properties used to
configure the javax.sql.DataSource used as the non-XA ConnectionFactory.
Each property should be of the form "key=value", where "key" is the name
of some bean-like property of the data source.</description>
<config-property-name>ConnectionFactory2Properties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The JNDI name of the connection factory to use for
obtaining connections.</description>
<config-property-name>ConnectionFactoryName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>jdbc/Ventouris</config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of properties used to
configure the javax.sql.DataSource used as the ConnectionFactory. Each
property should be of the form "key=value", where "key" is the name of
some bean-like property of the data source.</description>
<config-property-name>ConnectionFactoryProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The password for the user specified in
ConnectionUserName</description>
<config-property-name>ConnectionPassword</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of properties to be passed to
the JDBC Driver when obtaining a Connection. Properties are of the form
"key=value". If the given JDBC Driver class is a DataSource, these
properties will be used to configure the bean properties of the
DataSource. </description>
<config-property-name>ConnectionProperties</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>This property dictates when PersistenceManagers will
retain and release data store connections. Available options are
"on-demand" for retaining a connection only during pessimistic
transactions and data store operations, "transaction" for retaining a
connection for the life of each transaction, or "persistence-manager" to
indicate that a persistence manager should retain and reuse a single
connection for its entire lifespan.</description>
<config-property-name>ConnectionRetainMode</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>transaction</config-property-value>
</config-property>
<config-property>
<description>The URL for the data source.</description>
<config-property-name>ConnectionURL</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The username for the connection listed in
ConnectionURL.</description>
<config-property-name>ConnectionUserName</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>Set to true if you''d like Kodo to copy all object
ids before returning them to your code. If you do not plan on modifying
identity objects, you can set this property to false to avoid the copying
overhead.</description>
<config-property-name>CopyObjectIds</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>Plugin used to cache data loaded from the data store.
Must implement kodo.datacache.DataCache.</description>
<config-property-name>DataCache</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The number of milliseconds that data in the data
cache is valid for. A value of 0 or less means that by default, cached
data does not time out.</description>
<config-property-name>DataCacheTimeout</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>-1</config-property-value>
</config-property>
<config-property>
<description>The type of data source in use. Available options
are "local" for a standard data source under Kodo''s control, or
"enlisted" for a data source managed by an application server and
automatically enlisted in global transactions.</description>
<config-property-name>DataSourceMode</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>enlisted</config-property-value>
</config-property>
<config-property>
<description>The kodo.jdbc.sql.DBDictionary to use for database
interaction. This is auto-detected based on the setting of
javax.jdo.option.ConnectionURL, so you need only set this to override the
default with your own custom dictionary or if you are using an
unrecognized driver.</description>
<config-property-name>DBDictionary</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>Whether to dynamically create custom structs to hold
and transfer persistent state in the Kodo data cache and remote
persistence manager frameworks. Dynamic structs can reduce data cache
memory consumption, reduce the amount of data serialized back and forth
under remote persistence managers, and improve the overall performance of
these systems. However, they increase application warm-up time while the
custom classes are generated and loaded into the JVM. Set to true to
enable dynamic data structs.</description>
<config-property-name>DynamicDataStructs</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>Specifies the default eager fetch mode to use.
Either "none" to never eagerly-load relations, "join" for selecting 1-1
relations along with the target object using inner or outer joins, or
"parallel" for selecting 1-1 relations via joins, and collections
(including to-many relations) along with the target object using separate
select statements executed in parallel.</description>
<config-property-name>EagerFetchMode</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>parallel</config-property-value>
</config-property>
<config-property>
<description>The number of rows that will be pre-fetched when an
element in a Query result is accessed. Use -1 to pre-fetch all
results.</description>
<config-property-name>FetchBatchSize</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>-1</config-property-value>
</config-property>
<config-property>
<description>The name of the JDBC fetch direction to use.
Standard values are "forward", "reverse", and "unknown".</description>
<config-property-name>FetchDirection</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>forward</config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of fetch group names that
PersistenceManagers will load by default when loading data from the data
store.</description>
<config-property-name>FetchGroups</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of query filter listeners to
add to the default list of extensions. Each listener must implement the
kodo.jdbc.query.JDBCFilterListener interface.</description>
<config-property-name>FilterListeners</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>Whether or not Kodo should automatically flush
modifications to the data store before executing queries.</description>
<config-property-name>FlushBeforeQueries</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>with-connection</config-property-value>
</config-property>
<config-property>
<description>If true, Kodo will order all SQL inserts, updates,
and deletes to meet your schema''s foreign key constraints. Defaults to
false.</description>
<config-property-name>ForeignKeyConstraints</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>If false, then the JDO implementation must consider
modifications, deletions, and additions in the PersistenceManager
transaction cache when executing a query inside a transaction. Else, the
implementation is free to ignore the cache and execute the query directly
against the data store.</description>
<config-property-name>IgnoreCache</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>Plugin used to manage inverse relations during flush.
Set to true to use the default inverse manager. Custom inverse managers
must extend kodo.runtime.InverseManager.</description>
<config-property-name>InverseManager</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of
com.solarmetric.jdbc.JDBCListener implementations to install on all
connection pools.</description>
<config-property-name>JDBCListeners</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>The license key provided to you by SolarMetric. Keys
are available at www.solarmetric.com</description>
<config-property-name>LicenseKey</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value><KEY-REMOVED></config-property-value>
</config-property>
<config-property>
<description>Plugin used to handle acquiring locks on persistent
instances. Must implement kodo.runtime.LockManager.</description>
<config-property-name>LockManager</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>pessimistic</config-property-value>
</config-property>
<config-property>
<description>The number of milliseconds to wait for an object lock
before throwing an exception, or -1 for no limit.</description>
<config-property-name>LockTimeout</config-property-name>
<config-property-type>java.lang.Integer</config-property-type>
<config-property-value>-1</config-property-value>
</config-property>
<config-property>
<description>LogFactory and configuration for Kodo''s logging
needs.</description>
<config-property-name>Log</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>kodo(DefaultLevel=WARN, Tool=WARN,
Runtime=WARN, SQL=WARN)</config-property-value>
</config-property>
<config-property>
<description>The mode to use for calculating the size of large
result sets. Legal values are "unknown", "last", and "query".</description>
<config-property-name>LRSSize</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>query</config-property-value>
</config-property>
<config-property>
<description>Plugin used to integrate with an external transaction
manager. Must implement kodo.runtime.ManagedRuntime.</description>
<config-property-name>ManagedRuntime</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>auto</config-property-value>
</config-property>
<config-property>
<description>Plugin used to configure management and profiling
capabilities.</description>
<config-property-name>ManagementConfiguration</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>none</config-property-value>
</config-property>
<config-property>
<description>The kodo.jdbc.meta.MappingFactory that will provide
the object-relational mapping information needed to map each persistent
class to the database.</description>
<config-property-name>MappingFactory</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>file</config-property-value>
</config-property>
<config-property>
<description>Plugin used to create metadata about persistent
types. Must implement kodo.meta.MetaDataLoader</description>
<config-property-name>MetaDataLoader</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>jdo</config-property-value>
</config-property>
<config-property>
<description>If true, then the application plans to have multiple
threads simultaneously accessing a single PersistenceManager, so measures
must be taken to ensure that the implementation is thread-safe. Otherwise,
the implementation need not address thread safety.</description>
<config-property-name>Multithreaded</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>If true, then it is possible to read persistent data
outside the context of a transaction. Otherwise, a transaction must be in
progress in order read data.</description>
<config-property-name>NontransactionalRead</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>If true, then it is possible to write to fields of a
persistent-nontransactional object when a transaction is not in progress.
If false, such a write will result in a JDOUserException.</description>
<config-property-name>NontransactionalWrite</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>Determines the persistence manager's behavior in
calls to getObjectById with a validate parameter of false. Use "check" to
check that a database record exists for the object and load its fetch
group fields. Use "hollow" to return a hollow instance.</description>
<config-property-name>ObjectLookupMode</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>check</config-property-value>
</config-property>
<config-property>
<description>Selects between optimistic and pessimistic (data
store) transactional modes.</description>
<config-property-name>Optimistic</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>Action to take when Kodo discovers an orphaned key in
the database. May be a custom action implementing
kodo.event.OrphanedKeyAction.</description>
<config-property-name>OrphanedKeyAction</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>log</config-property-value>
</config-property>
<config-property>
<description>The name of the concrete implementation of
javax.jdo.PersistenceManagerFactory that
javax.jdo.JDOHelper.getPersistenceManagerFactory () should create. For
Kodo JDO, this should be kodo.jdbc.runtime.JDBCPersistenceManagerFactory
or a custom extension of this type.</description>
<config-property-name>PersistenceManagerFactoryClass</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>kodo.jdbc.runtime.JDBCPersistenceManagerFactory</config-property-value>
</config-property>
<config-property>
<description>Persistence manager plugin and properties. If you
use a custom class, it must extend
kodo.runtime.PersistenceManagerImpl.</description>
<config-property-name>PersistenceManagerImpl</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>default</config-property-value>
</config-property>
<config-property>
<description>Configure this persistence manager factory to service
remote persistence managers.</description>
<config-property-name>PersistenceManagerServer</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>false</config-property-value>
</config-property>
<config-property>
<description>A comma-separated list of the class names of all
persistent classes to register whenever a persistence manager is
obtained.</description>
<config-property-name>PersistentClasses</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>com.ardatis.ventouris.domain.KwartaalVerhoging,
com.ardatis.ventouris.domain.Land, com.ardatis.ventouris.domain.Gemeente,
com.ardatis.ventouris.domain.Adres,
com.ardatis.ventouris.domain.ContactGegeven,
com.ardatis.ventouris.domain.AdresContactGegeven,
com.ardatis.ventouris.common.type.AdresType,
com.ardatis.ventouris.domain.OntvangstTransactie,
com.ardatis.ventouris.domain.OntvangstReeks,
com.ardatis.ventouris.domain.Ontvangst,
com.ardatis.ventouris.domain.Inkomen,
com.ardatis.ventouris.domain.loopbaan.LoopbaanPeriode,
com.ardatis.ventouris.common.type.InkomenSoort,
com.ardatis.ventouris.common.type.INSZ,
com.ardatis.ventouris.domain.Aangeslotene,
com.ardatis.ventouris.domain.NatuurlijkePersoon,
com.ardatis.ventouris.domain.Persoon, com.ardatis.ventouris.domain.Rol,
com.ardatis.ventouris.domain.Dossier,
com.ardatis.ventouris.common.type.Geslacht,
com.ardatis.ventouris.common.type.Taal,
com.ardatis.ventouris.common.type.Nationaliteit,
com.ardatis.ventouris.common.type.KostType,
com.ardatis.ventouris.domain.Verhoging,
com.ardatis.ventouris.domain.Aanvraag,
com.ardatis.ventouris.domain.AanvraagAansluitingSS,
com.ardatis.ventouris.domain.AanvraagToestand,
com.ardatis.ventouris.common.type.AanvraagToestandType,
com.ardatis.ventouris.domain.Factuur,
com.ardatis.ventouris.domain.TaakType, com.ardatis.ventouris.domain.Taak,
com.ardatis.ventouris.domain.BijdrageBerekening,
com.ardatis.ventouris.domain.calculationparameters.HerwaarderingsIndex,
com.ardatis.ventouris.domain.integration.asis.TempInterneOntvangst,
com.ardatis.ventouris.domain.calculationparameters.InkomenGrens,
com.ardatis.ventouris.domain.calculationparameters.BijdrageCategorie,
com.ardatis.ventouris.domain.calculationparameters.BijdrageCategorieGroep,
com.ardatis.ventouris.domain.integration.asis.TempOntvangstKinderbijslag,
com.ardatis.ventouris.domain.calculationparameters.JaarVerhogingParameter,
com.ardatis.ventouris.domain.calculationparameters.KwartaalVerhogingParameter,
com.ardatis.ventouris.domain.UitgaveReeks,
com.ardatis.ventouris.domain.Uitgave,
com.ardatis.ventouris.domain.Terugbetaling,
com.ardatis.ventouris.domain.BedragTerugbetaald,
com.ardatis.ventouris.domain.BijdrageSS</config-property-value>
</config-property>
<config-property>
<description>Plugin used to proxy second class object fields of
managed instances. Must implement kodo.util.ProxyManager.</description>
<config-property-name>ProxyManager</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>default</config-property-value>
</config-property>
<config-property>
<description>Plugin used to cache query results loaded from the
data store. Must implement kodo.datacache.QueryCache.</description>
<config-property-name>QueryCache</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>Plugin used to cache query compilation data. Must
implement java.util.Map. Does not need to be thread-safe -- it will be
wrapped via the Collections.synchronizedMap() method if it does not extend
kodo.util.CacheMap.</description>
<config-property-name>QueryCompilationCache</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>true</config-property-value>
</config-property>
<config-property>
<description>The default lock level to use when loading objects
within non-optimistic transactions. Set to none, read, write, or the
numeric value of the desired lock level for your lock
manager.</description>
<config-property-name>ReadLockLevel</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value>read</config-property-value>
</config-property>
<config-property>
<description>Plugin used to communicate commit information among
JVMs. Must implement kodo.event.RemoteCommitProvider.</description>
<config-property-name>RemoteCommitProvider</config-property-name>
<config-property-type>java.lang.String</config-property-type>
<config-property-value></config-property-value>
</config-property>
<config-property>
<description>Whether or not RemoteCommitEvents will include the
object Ids of objects added during the transaction.</description>
<config-property-name>RemoteCommitTransmitAddObjectIds</config-property-na -
Fetch out of Sequence error isn't returned when doing a single fetch
Hi all,
As per my understanding, if we fetch all the rows from a sys_refcursor into a collection, within the pl/sql block, then it doesn't return any row to the calling program. Instead a fetch out of sequence error is encountered. This worked well. However, when I use a single fetch statement(in case the sys_refcursor contains a single row), I do not encounter "Fetch Out Of Sequence" error. It would be really helpful if anyone could please explain this behaviour.
Below is a sample code snippet that I ran in PL/SQL Developer:
CREATE OR REPLACE PROCEDURE test_cur_1(in_dept_id VARCHAR2,
out_cursor OUT SYS_REFCURSOR) IS
temp_count NUMBER;
temp_rec dept%ROWTYPE;
BEGIN
--This piece of code runs into a "Fetch Out Of Sequence" error, when trying to open up the sys_refcursor.
OPEN out_cursor FOR
SELECT *
FROM dept
WHERE dept_id = in_dept_id;--dept_id is the primary key
LOOP
EXIT WHEN out_cursor%NOTFOUND;
FETCH out_cursor
INTO temp_rec;
dbms_output.put_line('department name: '||temp_rec.dept_name);
END LOOP;
EXCEPTION
WHEN OTHERS THEN
OPEN out_cursor FOR
SELECT SQLCODE||'->'||SQLERRM FROM dual;
END;
CREATE OR REPLACE PROCEDURE test_cur_2(in_dept_id VARCHAR2,
out_cursor OUT SYS_REFCURSOR) IS
temp_count NUMBER;
temp_rec dept%ROWTYPE;
BEGIN
--This piece of code does not run into a "Fetch Out Of Sequence" error. Instead the output sys_refcursor opens up for no rows to display.
OPEN out_cursor FOR
SELECT *
FROM dept
WHERE dept_id = in_dept_id;--dept_id is the primary key
FETCH out_cursor
INTO temp_rec;
dbms_output.put_line('department name: '||temp_rec.dept_name);
EXCEPTION
WHEN OTHERS THEN
OPEN out_cursor FOR
SELECT SQLCODE||'->'||SQLERRM FROM dual;
END;
Appreciate all your time!When you loop through a cursor, Oracle does not know how many rows there will be in the cursor until it has fetched them all, and it cannot know it has fetched them all until it does one last fetch after getting the last row to find that ti gets nothing back. In psuedo code the fetch command works something like:
open cursor
cursor%notfound := null;
-- This is the fetch phase
ask sql engine to give me a row
if I got one then
cursor%notfound := false;
populate variables/record with values
else
cursor%notfound := true;
end if;
-- end fetch phase
go onto next command in the pl/sql blockSo, in your first procedure you fetch the last row of the cursor then go back to the top of the loop. Since Oracle does not know at this point that the last row has already been fetched so, out_cursor%notfound is still false, so it does another fetch at which point it now "knows" that the last row is fetched so notfound becomes true and your loop exits, returning control to the caller. At this point, presumably the caller attempts to fetch from the cursor. Since the cursor handle is already pointing past the last row you get the fetch out of sequence.
In your second procedure, you fetch a single row from the cursor. You know that the cursor is pointing at the "last" row since you are querying based on the PK, but Oracle does not know that yet. You now return that cursor to the caller who does one more fetch which moves the pointer past the end of the cursor. The caller "sees" no rows, but that is because your procedure already fetched the rows, but did not "check" for the last row.
John -
Lightroom 5.7 Imports Photos Out of Sequence
Since updating to Lightroom 5.7 photos are imported out of sequence. They are in the correct sequence when the card is read but during import they are scrambled, for example: importing five photos in order A, B, C, D and E but the sequence after import was A was 0001, D was 0002, B was 0003 and E was 0004 and C was 0005. Not a big deal with 5 photos but it makes processing more difficult with a large imports. Has anyone else run into this and how was it fixed? Thanks!
My best work around for this is to just import them without renaming them, then once they are imported, I go into the folder they are in and sort with Capture time. Then I select all of them (Command A) and then go to the toolbar, Library->Rename Photos and then select my favorite way to name my pictures. It renames them super fast and now the file name sequence and the capture times are all in sync. There are a lot of improvements that need to be made with LR. Another issue that takes work outside of Lightroom is the "Make Second Copy" in the Import section. That needs its own section with way more options.
-
I have a finalized project in iMovie '11. Shared it on Youtube, Facebook, and Vimeo. Then, when I shared it to iDVD, it reverted to a previous version of the project, so my titles and pictures were out of sequence. Now, in my list of projects, my project is there, but finalized as the previous version which is all out of sequence. My true final project is now gone! What happend?
I didn't notice this problem until after the DVD was burned in iDVD. Then, when I played the DVD in a public setting, I was a bit embarrassed by what played.Hi
My first thoughts are
• iMovie ill behaving - Trash the iMovie pref file - use to set things right
• in reg. to Photos - Did You change iPhoto Photo Library - Then iMovie get's lost as it peeks into iPhoto on start up to see where photos are stored. Set iPhoto back to first Photo Library (when iMovie is not running) then start iMovie.
Yours Bengt W -
An out-of-sequence check is not permitted for payroll type B
We had to do advance payments for 4 pay periods for an employee through offcycle workbench. One of the checks was wrong so we had to reverse it. It is an out of sequence reversal. Now when i try to do a correction run , it gives me an error An out-of-sequence check is not permitted for payroll type B
How can i run the correction run now. Please help
Edited by: sagarika sharma on Aug 14, 2010 6:29 AMCheck with SAP note 1425764,696067 and 1127119.
Mohan -
How to find out which sub query returns more than one row
Hi all,
Can any one give me clue ,how to find out which sub query returns more than one row in the following query .
/* Formatted on 2011/05/17 19:22 (Formatter Plus v4.8.8) */
SELECT a.*, ROWNUM AS rnm
FROM (SELECT DISTINCT '1' AS "Page View", ou.org_unit_name AS "Org",
prxm.mbr_idntfr AS "Beneficiary ID",
md.last_name
|| ', '
|| md.first_name AS "Beneficiary Name",
pci.idntfr AS "Tracking No.",
TO_CHAR (TRUNC (req.pa_rqst_date),
'MM/dd/yyyy'
) AS "Request Date",
sts.status_name AS "Status",
req.pa_rqst_sid AS "Request #",
prxm.mbr_sid AS "Mbr_sid",
TO_CHAR
(TRUNC (req.pa_revision_date),
'MM/dd/yyyy'
) AS "Last Updated",
TO_CHAR (psd.TO_DATE, 'MM/dd/yyyy') AS "TO_DATE",
prxpl.prvdr_lctn_iid AS "PRVDR_LCTN_IID",
pd.prvdr_sid AS "PRVDR_SID", 'Y' AS "State View",
DECODE
((SELECT DISTINCT pd.national_prvdr_idntfr
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid =
req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR'),
0, (SELECT prxplo.prvdr_lctn_idntfr
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid = req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR'),
NULL, (SELECT prxplo.prvdr_lctn_idntfr
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid = req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR'),
(SELECT DISTINCT pd.national_prvdr_idntfr
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid =
req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR')
) AS "NPI/ID",
DECODE
((SELECT pd.org_bsns_name
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid = req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR'),
NULL, (SELECT pd.last_name
|| ', '
|| pd.first_name
|| ' '
|| pd.middle_name
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid = req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR'),
(SELECT pd.org_bsns_name
FROM pa_request_x_provider_location prxplo
WHERE prxplo.pa_rqst_sid = req.pa_rqst_sid
AND prxplo.oprtnl_flag = 'A'
AND prxplo.pa_prvdr_type_lkpcd = 'RR')
) AS "Prvdr Name",
TO_CHAR (psd.from_date,
'MM/dd/yyyy'
) AS "Srvc From Date",
TO_CHAR (req.validity_start_date,
'MM/DD/YYYY'
) AS "Due Date",
(fn_get_busniess_days (TRUNC (req.validity_start_date))
) AS "Days<br>Left",
req.pa_mode_type_lkpcd AS "Source",
TO_CHAR (TRUNC (wmdtl.rtng_date),
'MM/dd/yyyy'
) AS "Assigned On",
NVL (wmdtl.assigned_to_user_name,
'Not Assigned'
) AS "Assigned To",
req.org_unit_sid AS "OrgUnitSid",
TO_CHAR
(wmdtl.modified_date,
'MM/dd/yyyy hh24:mi:ss'
) AS "WTRD_MODIFIED_DATE",
TO_CHAR (wmdtl.rtng_date,
'MM/dd/yyyy'
) AS "WTRD_RTNG_DATE",
req.status_cid AS "PA_STATUS_CID",
TO_CHAR (req.modified_date,
'MM/dd/yyyy'
) AS "PA_REQ_MODIFIED_DATE",
prs.state_pa_srvc_type_code
AS "STATE_PA_SRVC_TYPE_CODE",
wmdtl.wm_pa_task_rtng_dtl_sid
AS "WM_TASK_RTNG_DTL_SID",
wmdtl.assigned_to_user_acct_sid
AS "WTRD_Assigned_to_user_acct_sid",
(fn_get_busniess_days (TRUNC (req.validity_start_date))
) AS "Days<br>LeftSort",
wmdtl.assigned_to_org_unit_sid
AS "WTRD_Assigned_to_OrgUntSid",
DECODE
((SELECT COUNT (*)
FROM pa_request_status prs
WHERE prs.pa_rqst_sid = req.pa_rqst_sid
AND prs.status_cid = 5
AND prs.oprtnl_flag = 'I'),
0, 'N',
'Y'
) AS "SHOW_UTILIZATION"
FROM pa_request req,
pa_certification_identifier pci,
status sts,
pa_request_x_member prxm,
wm_pa_task_routing_detail wmdtl,
pa_service_date psd,
org_unit ou,
pa_request_service prs,
pa_request_x_provider_location prxpl,
provider_location pl,
provider_detail pd,
provider p,
mbr_dmgrphc md
WHERE req.oprtnl_flag = 'A'
AND req.status_cid NOT IN
(20, 30, 70, 25, 80, 96, 85, 5, 97, 98, 101)
AND req.org_unit_sid IN
(3057, 3142, 3058, 3143, 3059, 3144, 3060, 3145,
3061, 3146, 3062, 3147, 3063, 3148, 3064, 3149,
3065, 3150, 3066, 3151, 3067, 3152, 3068, 3153,
3069, 3154, 3070, 3155, 3071, 3156, 3072, 3157,
3073, 3158, 3074, 3159, 3075, 3160, 3076, 3161,
3077, 3162, 3078, 3163, 3079, 3164, 3080, 3165,
3081, 3166, 3082, 3167, 3083, 3168, 3084, 3169,
3085, 3170, 3086, 3171, 3087, 3172, 3088, 3173,
3089, 3174, 3090, 3175, 3091, 3176, 3092, 3177,
3093, 3178, 3094, 3179, 3095, 3180, 3096, 3181,
3097, 3182, 3098, 3183, 3099, 3184, 3100, 3185,
3101, 3186, 3102, 3187, 3103, 3003, 75000104,
75000108, 2006, 75000103, 75000102, 75000113,
75000111, 75000109, 2001, 2009, 75000105,
75000107, 2004, 2010, 2013, 2014, 2005, 2011,
75000112, 2002, 1001, 2012, 75000106, 2007,
75000101, 2003, 75000110, 2008, 3001, 3002, 3019,
3104, 3020, 3105, 3021, 3106, 3022, 3107, 3023,
3108, 3024, 3109, 3025, 3110, 3026, 3111, 3027,
3112, 3028, 3113, 3029, 3114, 3030, 3115, 3031,
3116, 3032, 3117, 3033, 3118, 3034, 3119, 3035,
3120, 3036, 3121, 3037, 3122, 3038, 3123, 3039,
3124, 3040, 3125, 3041, 3126, 3042, 3127, 3043,
3128, 3044, 3129, 3045, 3130, 3046, 3131, 3047,
3132, 3048, 3133, 3049, 3134, 3050, 3135, 3051,
3136, 3052, 3137, 3053, 3138, 3054, 3139, 3055,
3140, 3056, 3141)
AND req.pa_rqst_sid = prs.pa_rqst_sid
AND prs.oprtnl_flag = 'A'
AND prs.pa_rqst_srvc_sid = psd.pa_rqst_srvc_sid
AND psd.oprtnl_flag = 'A'
AND req.pa_rqst_sid = pci.pa_rqst_sid
AND pci.oprtnl_flag = 'A'
AND req.pa_rqst_sid = prxm.pa_rqst_sid
AND prxm.oprtnl_flag = 'A'
AND md.oprtnl_flag = 'A'
AND md.status_cid = 2
AND TRUNC (SYSDATE) BETWEEN md.from_date AND md.TO_DATE
AND prxm.mbr_sid = md.mbr_sid
AND ou.org_unit_sid = req.org_unit_sid
AND ou.oprtnl_flag = 'A'
AND req.pa_rqst_sid = prxpl.pa_rqst_sid
AND prxm.pa_rqst_sid = prxpl.pa_rqst_sid
AND pci.pa_rqst_sid = prxm.pa_rqst_sid
AND pci.pa_rqst_sid = wmdtl.subsystem_task_sid
AND pci.pa_rqst_sid = prxpl.pa_rqst_sid
AND prxpl.pa_prvdr_type_lkpcd = 'RR'
AND prxpl.oprtnl_flag = 'A'
AND req.status_cid = sts.status_cid
AND sts.status_type_cid = 3
AND sts.oprtnl_flag = 'A'
AND prxpl.prvdr_lctn_iid = pl.prvdr_lctn_iid
AND p.prvdr_sid = pd.prvdr_sid
AND p.prvdr_sid = pl.prvdr_sid
AND pd.oprtnl_flag = 'A'
AND pd.status_cid = 2
AND TRUNC (SYSDATE) BETWEEN pd.from_date AND pd.TO_DATE
AND wmdtl.subsystem_task_sid = req.pa_rqst_sid
AND wmdtl.subsystem_lkpcd = 'PA'
AND wmdtl.oprtnl_flag = 'A'
AND req.pa_rqst_date > (SYSDATE - 365)
ORDER BY TO_DATE ("Request Date", 'MM/dd/yyyy hh24:mi:ss') DESC,
"Beneficiary Name" ASC) a
WHERE ROWNUM < 102;regards,
P Prakash
Edited by: BluShadow on 17-May-2011 15:01
added {noformat}{noformat} tags around the code833560 wrote:
Can any one give me clue ,how to find out which sub query returns more than one row in the following query .This is why smaller, simpler queries are easier to work with than huge ones - when something like this goes wrong smaller queries are much eaiser to debug. Unfortunately using smaller, easier-to-work with queries is not always an option
Ganesh is right - you will have to dissect the big query bit by bit until you find the offending subquery. If there is another way I would like to find out about it too.
The easiest way to do this is probably to use block comments to isolate parts of the query bit by bit until you find the offending part. If you carefully examine the subqueries you might be able to figure out which one is returning multiple rows without commenting everything
Good luck! -
How to find out which sequence a certain column used?
you konw column C in table T is created by a sequence.
How to find out which sequence column C is using?In the meantime I think it ought to becompulsory to
only assign sequence values in triggers.
Why? I can see no good reason for this. I think it's a good idea to have stuff like this
coded in only one placeI don't like your argument for compulsory using triggers for sequences for exactly the same reason as you, ie that I like to keep my code in one place. If I'm reading some pl/sql code which uses a sequence I like to see the fact that the sequence is used in the pl/sql code, rather than to check to see if theres a trigger on the table and then see which sequence that uses.
"naming conventions can work, provided they're enforced. Alas, like other standards, they can only be enforced by active policing".
Thats what code reviews are.
" there is also the special case of one sequence populating more than one table...."
This is My Pet hate. I don't think there's ever a case where this is absolutely necessary. Again code reviews
Unfortunately I have to live with a system which does this.
and I appreciate we can't all have code reviews, etc. -
How to find out the Sequence settings of a created sequence?
I have had a problem come up a few times where I am switching back and forth from one format to another, I frequently work on multiple edits, and my sound goes out of sync. This is usually because the sequence is set wrong (from when I switch and forget to change it back) and when exported it compresses the audio wrong. How do you find out what the settings are for a sequence you are working on when it's open in the FCP timeline? I'm looking for a quick way to rule out the sequence as part of the audio sync problem.
Thanks,
-BluecastOr Command-0. What about Easy Setups? I use them routinely so that I don't have to think about setups. Once the setup is saved and properly used, all the settings for sequences and hardware are easily made for you.
-
In DBI , how to find out the Source Query used for the Report
Hi All,
How to find out the Source Query used to display the data in the DBI Reports or Dashboards. We can get it in Apps Front end by Going to Help and Record Histroty. But DBI Runs in Internet Explorer so i dont know how to get the source query ( SELECT Query ) Used.
In IE we have View --> Source . But that does not help since it gives the HTML Coding and not the SELECT Query used.
If anyone has ever worked on it...Please help me in finding it.
Thanks,
Neeraj ShrivastavaHi neeraj,
You can see the query used to display reports.Follow these steps to get the query.
1)Login to oracle apps
2)Select "Daily Business Intelligence Administrator" responsiblity.
3)Now click on "Enable/Disable Debugging" (Now u enabled debugging)
4)now open the report which you want to see the query of
5)In view source it displays query along with the bind varilables.
Feel free to ping me if you have any doubts
thanks
kittu -
Data in payload out of sequence
Hi,
I have 10 fields between source and target but only 7 are mapped so other fields are optional and will need to be mapped later when necessary. Right now, the fields in the payloads are getting populated out of sequence. Meaning, if first field is 10 character and the data in the file for first first field is only coming with 7 chars, then the first field is taking additional 3 chars from the next field column in the data file. In the file adapter, I have simple configuration with Fields.fieldNames, Fields.lastFieldsOptional, Fields.fieldFixedLengths and Fields.fieldSeparator. How can I correct this? Do I need to make changes in the content conversion? Should I change the min-max length in data type or in the file adapter?Hi,
Thank you for your help and advice. Here is the structure and occurrences of source structure. The target structure is same as the source structure except that field 3 and field 7 are not sending any data so I have mapped constants in the target fields.
FieldNames_DT Complex Type null
Names1 Element 1 false
Fields Element 1 false
Field1 Element xsd:string 0..1 false minLength="0"; maxLength="5"
Field2 Element xsd:date 0..1 false
Field3 Element xsd:string 0..1 false minLength="0"; maxLength="4"
Field4 Element xsd:string 0..1 false minLength="0"; maxLength="4"
Field5 Element xsd:decimal 0..1 false totalDigits="10"; fractionDigits="2"
Field6 Element xsd:string 0..1 false minLength="0"; maxLength="10"
Field7 Element xsd:string 0..1 false minLength="0"; maxLength="8"
Field8 Element xsd:string 0..1 false minLength="0"; maxLength="2"
Field9 Element xsd:string 0..1 false minLength="0"; maxLength="1"
Field10 Element xsd:string 0..1 false minLength="0"; maxLength="2"
Maybe you are looking for
-
Externalize metadata strings does not work
Hi All, We have installed OBIEE 11.1.1.6 with OBIApps 7.9.6.3 and we are trying to apply the spanish localization . We follow the steps mentioned here: http://docs.oracle.com/cd/E20490_01/bia.7963/e19038/anyinstadmconfiglocalize.htm#i1039838 but "Ext
-
How many users are supported on a Cisco Aironet 1141N? 30?
I have a client that wants to upgrade his Aironet 1131 APs with 1141N. How many users are supported on a Cisco Aironet 1141N?
-
Duplicate entry check in Tb control with 6 same fields
actualy i have made a table control with six same fields. batch1 batch2 batch3 batch4 batch5 batch6 the data type of all fields is same. i want to assign a check for duplicate entries. the value entered in batch1 (say bgp
-
hello, I need help on this topics. I don't know how to start... What I want to do is to connect to a url of the form "http://www.someplace.com/image/pic.gif" and save the file pic.gif to my harddisk. Here how I started up: package cartoonextractor; i
-
Each time i want to unstall some addons for firefox (wot, personas..), a message wrote me that the install mode failed due to an error code 203. What does it mean and how is it possible to repair it ? == This happened == A few times a week == i want