How to catch OutOfMemoryError?
Hi all.
I don't know how to catch OutOfMemoryError.
Can anyone help me with this, please?
Many thanks in advance.
Miso
In some extreme cases my application throws
OutOfMemoryError. I want to inform the user that
his/her RAM is not big enough to handle such big
amount of data.
Is this possible to do?
thanksProbably not no.
Because when the VM throws an OutOfMemoryError then
it is a hurtin real bad. So creating new objects
isn't going to help much. Well, that's a little too gloomy... Yes, you can catch the error and do something about it, as long as you keep your goals VERY modest.
1) Catch it with "catch (Throwable)" or something more specific like "catch (Error)" or "catch (OutOfMemoryError)".
2) If (AND ONLY IF) you catch this error high up in the application (say in main() or a Servlet method processing method (doGet(), doPost(), etc.), to of a thread or other such location, you should then might enough memory available to produce and display an error message. You might try to recover and continue (good luck, lots of issues there). You might try issuing the following in the catch clause to try and cleanup the heap before you do anything else, but there are no guarantees this will do anything: System.gc();
System.runFinalization();
System.gc();Most experience Java developers avoid any such effort and instead ensure that their JVM's are configured appropriately and failing that allow the JVM to puke and die.
Similar Messages
-
How to catch SAP application errors in BPM.
Hi,
I have a IDOC to Soap Sync Scenario where I send the message to a Webservice. I have used a BPM since we need to catch the resposne of this message and map it to a RFC. For ex if I get a success resposne I need to map success if not than I need to catch the error and map it to the RFC. Now here in some cases like if the target system (webservice) is down than XI raises a sap application error:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Inbound Message
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Category>XIAdapterFramework</SAP:Category>
<SAP:Code area="MESSAGE">GENERAL</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: Connection refused (errno:239)</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Normally XI stops the process in these cases and does not proceed to the next step but I need to catch this message and map the content in the AdditionalText to the target RFC. Can anyone let me know how to catch this SAP Application Error in BPM and map it to the RFC.
Thanks,
BhargavHi Gaurav,
As I have mentioned I need to catch the application error in the BPM. If you see the discussion that is mentioned after the blog you have mentioned it is stated that the fault messages or the application error cannot be caught in BPM.
In the blog that you stated we can catch the fault message and map it to a message structure but only to that extent after that it would stop the BPM process at that step but would not proceed further as shown in the screenshot given in the blog it would fail as "application error restart not possible".
I need to proceed further and capture this error to an RFC Structure and call a proxy.
Here after the error it does not proceed to the next step.
Thanks,
Bhargav -
How to catch and display a link content in another portlet page?
Can you tell me how to display a URL content into next page after an user click s on this link? I am developing a JSR 168 portlet under a Portal. I have 3 pages so far in my portlet. view.jsp, view2.jsp and IpByHourPage.jsp. view2.jsp displays a lis of IP address. When an user clicks on an IP in view2.jsp, it goes to IpByHourPage.jsp. How to catch the IP address such as 123.23.89.21 that an user just click displayed in IpByHourPage.jsp. I don't know why I got null value returned.
Also, I don't know how to do a "go back to previous page". I want to go back to view2.jsp from IpbyHourPage.jsp
Here is my code
in view2.jsp
<portlet:renderURL var="aURL">
<portlet:param name="goto" value="IpByHourPage"/>
</portlet:renderURL>
<a href="<%=aURL.toString() %> "><%=MyIP%></a>
in IpByHourPage.jsp
<%
String MyIPHour = request.getParameter("goto");
%>
<h1>IP Report by Hour ( <%=MyIPHour%> )</h1>
<portlet:renderURL var="Ret_IPByHour">
<portlet:param name="Ret_IPHourPage" value="Ret_IPByHourPage"/>
</portlet:renderURL>
<center> <a href="<%=Ret_IPByHour.toString() %> "><b>Choose Another IP</b></a></center>
in my .java file
protected void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException, UnavailableException {
response.setContentType("text/html");
String MyBegDate = request.getParameter("BegDate");
String MyEndDate = request.getParameter("EndDate");
String MyNetworks = request.getParameter("networks");
String MyYourName = request.getParameter("yourname");
PortletURL renderURL = response.createRenderURL();
renderURL.setPortletMode(PortletMode.VIEW);
request.setAttribute("renderURL", renderURL.toString() )
String GotoRenderAction = request.getParameter("goto");
String MyIPHourAction = request.getParameter("Ret_IPHourPage");
if ( (MyIPHourAction!=null) && MyIPHourAction.equals("Ret_IPByHourPage") )
PortletRequestDispatcher kk = getPortletContext().getRequestDispatcher("/view2.jsp");
kk.include(request, response);
if (MyIPHourAction != null && MyIPHourAction.equals("Ret_IPByHourPage"))
PortletRequestDispatcher mm = getPortletContext().getRequestDispatcher("/view2.jsp");
mm.include(request, response);
if (GotoRenderAction != null && GotoRenderAction.equals("IpByHourPage"))
request.setAttribute("BegDate", "MyBegDate");
request.setAttribute("EndDate", "MyEndDate");
System.out.println("BegDate" + MyBegDate);
System.out.println("Endate" + MyEndDate);
PortletRequestDispatcher mm = getPortletContext().getRequestDispatcher("/IpByHourPage.jsp");
mm.include(request, response);
if(MyEndDate!= null )
PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher("/view2.jsp");
prd.include(request, response);
else if (MyEndDate==null && GotoRenderAction == null)
PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher("/view.jsp");
prd.include(request, response);
The problem for above code is the clicked single IP can not be displayed in IpByHourPage.jsp. and I cannot go back to view2.jsp from IpByHourPage.jsp. when I click "Choose Another IP"
I find out that the MyBegDate and MyEndDate values are all null when I click Choose Another IP link. I got the following error message
Caused by: javax.servlet.ServletException: Unparseable date: "null null"
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
at org.apache.jsp.view2_jsp._jspService(view2_jsp.java:651)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
How to fix above problems. ThanksI think the problems are related to portletsession. But I don't know how to use it. How to put portletsession into doview method or my jsp pages. Can anyone tell me in my code? Thanks a lot.
-
How to catch SQLException from a session bean
Hello
I have a stateless session bean which has a method to persist an entity (User) in the database. In User there is a foreign key (addressId) from another entity (Address). While i was persisting User, i entered a value of addressId which was not present in the Address table. Since there was a foreign key constraint on this field in User i got the following exception:
8:49:49,421 ERROR [JDBCExceptionReporter] ORA-02291:
integrity constraint (FK_USER_ADD) violated - parent key not
found 18:49:49,421 ERROR [AbstractFlushingEventListener]
Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: could
not insert: [com.User] at org.hibernate.exception.SQLStateConverter.convert(SQLState
Converter.java:71)So i placed the persist code inside a try block and was catching all the exceptions thrown by persist() method. But these exception are not caught. Instead the exception is sent to the Client end and printed on the client console.
Any clue on how to catch the ConstraintViolationException in the session bean?
ThanksThe problem is that the qry is not executed until you leave your method, so, the exception is catched by the Container. You should issue a entityManager.flush(); rigth "before" leaving the method and you are going to catch all the exceptions given
Cheers -
How to catch exception throw bc4j
Dear Forum
I am user of JDeveloper Swing application.
while exception throw from bc4j some particular
type error such as (oracle.jbo.DMLException) JBO-26041
message display.
i want to catch error no 26041 inorder to display own
messageBox.
There is two methods
1-:
i used messageBundle class i overite message string but unable to change dialogBox,i want to use own dialog.
2-:
And i fund ,DML exception message return from JUErrorHandlerDlg class.So using this subclass how
to catch and throw own message.
Plase send me some code to write sub class of JUErrorHandlerDlg.You want this method System to throw an exception if the String[] is empty?
public void system( ObjectOutputStream output, String cmd [] ) {
if (cmd.length == 0)
throw new IllegalArgumentException("Hey! This is an empty array!");
//...rest of your method
}You can choose for yourself which exception type is most appropriate. You can in theory always use the base Exception but is not very specific nor recommended. In this case, I think an existing unchecked exception such as IllegalArgumentException would be the most appropriate. -
How to catch click event on BAR or a BAR GRAPH???
Hello
I want to implemnt following things,
1. there is Bar Graph containing 10 Bars.
2. So i want to navigate to 10 diff. pages on click of each bar.
So how to catch click event on BAR or a BAR GRAPH.????Hi,
You can set Destination URI on a graph. The URL can be specifically associated to a particular data point plotted in the graph.
Detail for the same is provided in OAF developer guide under 'Charts and Graphs' topic.
--Sushant -
How to catch the value in sum(control break statement).
hi,
can any one tell me how to catch the value in sum in control break satament.
ex.
at end of brtwr.
sum.
endat.
I need to print the value in sum only.
I tried to declare a varaible of type i and assigned sum to this variable.
it is giving syntax error that sum is not identified.
How should i do this.
regards.Hi Siva,
In control break statement when we use SUM. it added all the amount fields and stores its in the work area of that field.
look below code.
DATA : BEGIN OF itab OCCURS 0,
name(10),
num TYPE i,
END OF itab.
DATA : num TYPE i .
itab-name = 'salman'.
itab-num = 100.
APPEND itab.
itab-name = 'salman'.
itab-num = 200.
APPEND itab.
itab-name = 'akshay'.
itab-num = 500.
APPEND itab.
LOOP AT itab.
AT END OF name.
SUM.
WRITE : / itab-num.
ENDAT.
ENDLOOP.
here the SUM value is stored in Workarea,
the output will be 300 & 500.
regards
Kumar M -
How to catch the error occurred in Integration Process, and then save it?
1. how to catch the error occurred in Integration Process, and then save the detailed error message to the file?
2. there are fault message type for inbound message interface, how to use the fault message type in IR?
Thanks,
Michael
Message was edited by: Spring Tang
inital
Message was edited by: Spring Tang
detailed message output
Message was edited by: Spring Tang
fault message typeHi Spring,
If u give an exception step along with your Transformation Step, whenever some error occurs in your message mapping, this exception block wil be triggered.
You can configure your exception block to do all exception processing that you want. This exception handling is like any other java Exceptio n Handler. You can do anything that you want in your exception handler block on the basis of your requirements.
<i>If an exception is triggered at runtime, the system first searches for the relevant exception handler in surrounding blocks. If it does not find the correct exception handler, it continues the search in the next block in the block hierarchy.
When the system finds the correct system handler, it stops all active steps in the block in which the exception handler is defined and then continues processing in the exception handler branch. Once the exception handler has finished processing, the process is continued after the block.
If the system fails to find an exception handler, it terminates the integration process with an error.</i>
Regards,
Bhavesh -
OC4J 10.1.3: EJB3 - How to catch SQLExceptions in a SessionBean
Hi,
originally I posted this a few minutes ago in the toplink forum, but I'm
unsure if this better suits here. So exceptionally, I post it here as well with a
reference to:
EJB3 - How to catch SQLExceptions from within a stateful session bean
I would like to catch any exception while persisisting the data right in my stateful
session bean and don't have to wait until the client receives an SQLException
wrapped in a bunch of other exceptions.
Here some code fragments to illustrate my problem:
// in Client:
InitialContext ctx = new InitialContext();
statefulWork = (StatefulWork) ctx.lookup("StatefulWork");
try {
statefulWork.doIt();
} catch (Throwable t) {
// don't want to implement db-failover here, even though this works
// in SSB
@Resource
private EntityManager em;
public void doIt() {
try {
// create some entites here, do some loops, long running transaction
em.persist(oneOfMyEntityObjects);
// set some state in the SSB here
} catch (Throwable t) {
// I want to catch all exceptions the persistence provider (toplink) gets
// but I don't get any here :-(
// this should be to implement proper retry after reconnect (RAC with TAF)
}In my testcase I issue a shutdown abort while insert statements are executed.
The client receives an EJBException, but within the SSB nothing...
How to change this behavior?
Here is what one can find in the OC4J log:
[TopLink Warnung]: 2006.03.27 03:25:32.220--UnitOfWork(13386)--Thread(Thread[RMICallHandler-0,5,RequestThreadGroup])--Exception [TOPLINK-4002] (Oracle TopLink - 10g Release 3 (10.1.3.0.0) (Build 060118)): oracle.toplink.exceptions.DatabaseException
Interne Exception: java.sql.SQLException: ORA-25402: transaction must roll back
Fehlercode:25402
Call:INSERT INTO T_RUN_DETAILS (ID, INS_TIME, COUNTER, RUN_ID) VALUES (105781, '2006.03.27 03:23:55', 450, 801)After that the transaction is properly rolled back (automatically) and the client
could implement the failover code, but I could not find a possibility to control this
at server side. Even with BMT I could not manage to catch this exception. I
wouldn't have a problem if I had to call ctx.setRollbackOnly() myself.
Hope someone can help. I'm getting a little desperate here.
Thanks,
EricThanks to the help of James Sutherland I managed to get this working.
I had to add a call to em.flush() and use BMT for the SSB. For details please follow my link to the toplink-forum!
James thinks OC4J can handle automatic transaction retries but wasn't sure about how to configure this in OC4J. Anyone can help?
Regards,
Eric -
How to catch following error ---- JBO-25013: -----plz reply
can any one plz tell me how to catch and display this error.....
as an arror message box?
please reply as early as possible....
thanx
detail error page---
oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[06927 ]. at oracle.jbo.server.OracleSQLBuilderImpl.doEntitySelect(OracleSQLBuilderImpl.java:796) at oracle.jbo.server.EntityImpl.doSelect(EntityImpl.java:5585) at oracle.jbo.server.EntityImpl.populate(EntityImpl.java:4712) at oracle.jbo.server.EntityImpl.merge(EntityImpl.java:5058) at oracle.jbo.server.EntityCache.add(EntityCache.java:565) at oracle.jbo.server.ViewRowStorage.entityCacheAdd(ViewRowStorage.java:1762) at oracle.jbo.server.ViewRowImpl.entityCacheAdd(ViewRowImpl.java:2151) at oracle.jbo.server.ViewDefImpl.createInstanceFromResultSet(ViewDefImpl.java:1070) at oracle.jbo.server.ViewObjectImpl.createRowFromResultSet(ViewObjectImpl.java:2943) at oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:2842) at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:2203) at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:2088) at oracle.jbo.server.QueryCollection.get(QueryCollection.java:1468) at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:3650) at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2818) at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2687) at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2634) at oracle.jbo.server.ViewRowSetIteratorImpl.getRowAtRangeIndex(ViewRowSetIteratorImpl.java:722) at oracle.jbo.server.ViewRowSetImpl.getRowAtRangeIndex(ViewRowSetImpl.java:3672) at oracle.jbo.server.ViewObjectImpl.getRowAtRangeIndex(ViewObjectImpl.java:6263) at oracle.adfinternal.view.faces.model.binding.FacesCtrlRangeBinding$FacesModel._bringInToRange(FacesCtrlRangeBinding.java:541) at oracle.adfinternal.view.faces.model.binding.FacesCtrlRangeBinding$FacesModel.setRowIndex(FacesCtrlRangeBinding.java:504) at oracle.adf.view.faces.component.UIXCollection.setRowIndex(UIXCollection.java:378) at oracle.adf.view.faces.component.UIXTable._processStamps(UIXTable.java:496) at oracle.adf.view.faces.component.UIXTable.processFacetsAndChildren(UIXTable.java:377) at oracle.adf.view.faces.component.UIXCollection.decodeChildrenImpl(UIXCollection.java:141) at oracle.adf.view.faces.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:803) at oracle.adf.view.faces.component.UIXCollection.processDecodes(UIXCollection.java:136) at oracle.adf.view.faces.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:818) at oracle.adf.view.faces.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:803) at oracle.adf.view.faces.component.UIXComponentBase.processDecodes(UIXComponentBase.java:673) at javax.faces.component.UIForm.processDecodes(UIForm.java:144) at oracle.adf.view.faces.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:818) at oracle.adf.view.faces.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:803) at oracle.adf.view.faces.component.UIXComponentBase.processDecodes(UIXComponentBase.java:673) at oracle.adf.view.faces.component.UIXComponentBase.decodeChildrenImpl(UIXComponentBase.java:818) at oracle.adf.view.faces.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:803) at oracle.adf.view.faces.component.UIXComponentBase.processDecodes(UIXComponentBase.java:673) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:880) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:306) at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:79) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64) at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367) at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336) at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196) at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:332) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:627) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:376) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:218) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:119) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:230) at oracle.oc4j.network.ServerSocketAcceptHandler.access$800(ServerSocketAcceptHandler.java:33) at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:831) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) at java.lang.Thread.run(Thread.java:595)Hi,
have a look at SRDemo that you can download through JDeveloper (help--> check for updates) and see
SRDemoADFPhaseListener.java
and
SRDemoPageLifecycle.java
in the oracle.srdemo.view.frameworkExt package
Frank -
How to catch when user enters a bogus jsp page. I have login.jsp. If someon enter log.jsp i get javax.servlet.ServletException: java.io.FileNotFoundException and then the whole path is shown. This onlyhappens with 9ias. When i was using http server that came with 9i database, i was able to catch this with send_error=true in zone.properties. It doesnt work with 9ias. How is everyone catching these errors? I cant seem to find out how to do it.
ThanksAnyone have any suggestions on this? I take it noone catches this..
-
How to catch filenotfoundexception when user enters a bogus page
How to catch when user enters a bogus jsp page. I have login.jsp. If someon enter log.jsp i get javax.servlet.ServletException: java.io.FileNotFoundException and then the whole path is shown. This onlyhappens with 9ias. When i was using http server that came with 9i database, i was able to catch this with send_error=true in zone.properties. It doesnt work with 9ias. How is everyone catching these errors? I cant seem to find out how to do it.
ThanksHi Adam,
I am also facing the same problem of the java.io.FIleNotFOundException in the browser display when i am giving a wrong file path in the Url. you have mentioned that you have solved it when you were using Orcale 8i Http Server, can you please guide me for that( as we are also using Oracle 8i) I checked with putting send_error=true in zone.properties file but that is not working. What exctly you have done to get rid of that error message. I am using Windows Nt platform.
Thanks and Regards.
Arnab -
How to catch java.io.FileNotFoundException when a user enters a bogus jsp page. For example. I have a page called login.jsp. If a user enters log.jsp, the entire path is show and i get java.io.FileNotFoundException. This should not happen. This only happened since I upgraded to 9iAS. I tried send_error=true in zone.properties like i did when i was just using oracle http that came with database and it doesnt work. How are all you guys catching this?? I cant find any documentation. They say send_error=true will work, but IT DOESNT.
Thanks for your timeHi Adam,
I am also facing the same problem of the java.io.FIleNotFOundException in the browser display when i am giving a wrong file path in the Url. you have mentioned that you have solved it when you were using Orcale 8i Http Server, can you please guide me for that( as we are also using Oracle 8i) I checked with putting send_error=true in zone.properties file but that is not working. What exctly you have done to get rid of that error message. I am using Windows Nt platform.
Thanks and Regards.
Arnab -
How to catch due Items for open Items for vendors
hello everybody,
How to catch due open Items amounts for vendors
for 0-30 30-60 60-90
regards
MaveHi
Mave
You have to get the open items from BSIK and then calculate the due date (there's only the baseline date, ZFBDT, in BSIK), you can use fm NET_DUE_DATE_GET to do it:
LOOP AT I_BSIK.
CALL FUNCTION NET_DUE_DATE_GET.
EXPORTING
I_ZFBDT = I_BSID-ZFBDT
I_ZBD1T = I_BSID-ZBD1T
I_ZBD2T = I_BSID-ZBD2T
I_ZBD3T = I_BSID-ZBD3T
I_SHKZG = I_BSID-SHKZG
I_REBZG = I_BSID-REBZG
I_KOART = 'K'
IMPORTING
E_FAEDT = DUE_DATE
Now you can calcultate the range:
DELTA_DAY = SY-DATUM - DUE_DATE.
IF DELTA_DAY < 30.
ENDLOOP.
Max -
How to catch PL/SQL: ORA-04052 error?
I need to execute a procedure that select remote objects but the remote db is a RAC DB and I only have access to one of the nodes, the remote RAC have load balancing enabled and the remote DBA can’t create a DB Service for my connection, so, I have to re-run the execution of my procedure until it connects successful to the remote DB through a db link, but I can’t catch the error ORA-12541: TNS:no listener.
Someone knows how to catch the error??
set serveroutput on
declare
function F_DATE return sysdate
is
ld_return date;
begin
begin
select sysdate into ld_return from dual@dbl_bnvalores;
exception
when others then
ld_return := f_date;
end;
return ld_return;
end F_DATE;
begin
dbms_output.put_line('Remote sysdate: '||f_date);
end;
Error at line 2
ORA-06550: line 2, column 26:
PLS-00562: a function must return a type.
ORA-06550: line 7, column 42:
PL/SQL: ORA-04052: error occurred when looking up remote object BNSAFI.DUAL@DBL_BNVALORES
ORA-00604: error occurred at recursive SQL level 1
ORA-12541: TNS:no listener
ORA-06550: line 7, column 7:
PL/SQL: SQL Statement ignoredI could confirm that you would never branch to the exception in case of no listener!
So another possibility that comes to mind is to enclose the remote select in an execute immediate and only execute it if you could establish a connection via UTL_TCP:
Something along those lines:
michaels> DECLARE
conn UTL_TCP.connection;
l_date DATE;
no_listner_excep EXCEPTION;
PRAGMA EXCEPTION_INIT (no_listner_excep, -29260);
BEGIN
conn := UTL_TCP.open_connection ('fleet', 1569);
EXECUTE IMMEDIATE 'select sysdate from dual@fleet_new'
INTO l_date;
UTL_TCP.close_connection (conn);
DBMS_OUTPUT.put_line (l_date);
EXCEPTION
WHEN no_listner_excep
THEN
DBMS_OUTPUT.put_line (SQLERRM (SQLCODE));
END;
ORA-29260: network error: TNS:no listener
PL/SQL procedure successfully completed.
Maybe you are looking for
-
Checking for business area while posting
i have to check for business areas balancing during posting document eg., when we get interest income from a bank account under business area X it should be credited to an account with same business area X. Dr Bank - X Cr Interest income - Y this sho
-
Which iphone version will work all over the world?
Hello there.Im from Pakistan.Need some info related to iPhone. Next month i'am going to Canada and planing to buy an iPhone 6 from there.. So im confused which version will work fine here in pakistan.. Kindly guide me about the version which should i
-
How do I back up apps on icloud before a factory reset?
I want to reset my Mac mini which I recently bought second hand but I would like to keep my apps I've already downloaded? How do I do this using icloud?
-
After reset iphone it is not set up
i reset my iphone than it is not set up without simcard, even i use before without simcard.
-
Mountain Lion renaming my computer
Since upgrading to Mountain Lion, I get a message that another machine on my network is using my computers name. It renames my machine by adding 1 to the previous name. I only have one other computer on my network and it uses a different name. When i