ADF 10g: AM pool dropped to zero after the jbo.ampool.timetolive is reached

Hi,
JDev: 10.1.3.2.0.4066
I have a problem where all appModules in the application module pool are removed when the jbo.ampool.timetolive threshold is reached, even the currently referenced ones. This causing serious performance issues in our application. I have seen reports from Steve Muench on his blog (http://radio-weblogs.com/0118231/2006/03/30.html) that this issue can happen under certain circumstances but the link is broken, so am not sure what the reason is. Does anyone have a link to where this was moved to? Steve also has added (Disabling jbo.ampool.timetolive on this forum of how to "disabled the time to live consideration" but the timetolive is still removing all the appModules in the pool. Why is the pool being completely wiped out after the timetolive?
Here is the BC4J configuration that is being used:
NB:
* web session timeout is 45 minutes
* I am using a JDBC pool as well
      <AppModuleConfig name="Oracle">
         <DeployPlatform>LOCAL</DeployPlatform>
         <JDBCName>cvclaims_Oracle</JDBCName>
         <jbo.TypeMapEntries>Java</jbo.TypeMapEntries>
         <jbo.project>Model</jbo.project>
         <AppModuleJndiName>my.adf.root.RootAppModule</AppModuleJndiName>        
         <java.naming.factory.initial>oracle.jbo.common.JboInitialContextFactory</java.naming.factory.initial>
         <ApplicationName>my.adf.root.RootAppModule</ApplicationName>        
         <jbo.locking.mode>optimistic</jbo.locking.mode>        
         <jbo.ampool.initpoolsize>50</jbo.ampool.initpoolsize>
         <jbo.ampool.maxpoolsize>100</jbo.ampool.maxpoolsize>
         <jbo.recyclethreshold>50</jbo.recyclethreshold>
         <jbo.ampool.maxavailablesize>50</jbo.ampool.maxavailablesize>
         <jbo.ampool.minavailablesize>50</jbo.ampool.minavailablesize>
         <jbo.poolmaxavailablesize>51</jbo.poolmaxavailablesize>
         <jbo.maxpoolsize>51</jbo.maxpoolsize>
         <jbo.initpoolsize>51</jbo.initpoolsize>
         <jbo.poolminavailablesize>51</jbo.poolminavailablesize>
         <jbo.ampool.maxinactiveage>2760000</jbo.ampool.maxinactiveage>
         <jbo.ampool.monitorsleepinterval>60000</jbo.ampool.monitorsleepinterval>
         <jbo.ampool.timetolive>2850000</jbo.ampool.timetolive>
      </AppModuleConfig> Here is the code that logs out a user:
                // Check whether the URL is the LOGOUT URL
                if (requestURL.endsWith(logoutUrl)) {
                    // Log out, invalidate the session.
                    // Tried the patch mentioned in this thread with no change:
                    // ADF BC/ Faces - Logout exception
                    // This linked blog reports that the below ADFContext
                    // addition fixed it:
                    // http://vgoldin.blogspot.com/2007/02/adf-invalidating-web-session-in-apache.html
                    // but there may be more than one problem here.
                    // Others have suggested just wrapping the invalidate code
                    // in try/catch.
                    // Trying both here.
                    try {
                        ADFContext.getCurrent().removeScope(ADFContext.SESSION_SCOPE);
                    } catch (Exception e) {
                        e.printStackTrace();
                    try {
                        session.invalidate();
                    } catch (Exception e) {
                        e.printStackTrace();
                    MDC.remove(MDC_USERNAME);
                    if (!logoutDestinationUrlChecked && logoutDestinationUrl.startsWith("/")) {
                        logoutDestinationUrlChecked = true;
                        logoutDestinationUrl = request.getContextPath() + logoutDestinationUrl;
                        // relative path, prefix with request context path;
                    log.debug("Session is invalidated, redirecting to " + logoutDestinationUrl);
                    // we do redirect instead of forward so that this filter
                    // will be visisted again for the requested logout
                    // destination
                    // forcing a new login when applicable.
                    response.sendRedirect(response.encodeRedirectURL(logoutDestinationUrl)); DumpPoolStatistics.jsp page output
This page is explained in Steve Muench's blog
head:Application module lifetime statistics
Number of application module creations,3208
Number of application module removals,3184
head:State management statistics
Number of transactional state activations,2073
Number of transactional state passivations,2873
head:Application pool use statistics
Number of application pool check outs,193821
Number of application pool check ins,193818
Number of referenced application modules that were reused,183071
Number of referenced application modules that were recycled,0
Number of unreferenced application modules that were recycled,7594
Number of application pool check out failures,8
head:Application module statistics
Total number of application modules in the pool,24
Maximum number of application modules in the pool,50
Average number of application modules in the pool,23
Total number of available application modules in the pool,21
Average number of available application modules in the pool,21
Average number of unavailable application modules in the pool,2
Total number of referenced application modules in the pool,24
head:Application module age statistics
Number of referenced instances unused for >10 min,7
Number of referenced instances unused for >5 min,2
Number of referenced instances unused for >1 min,6
Number of referenced instances used during last 1 min,9
Number of instances unused for >10 min,0
Number of instances unused for >5 min,0
Number of instances unused for >1 min,0
Number of instances used during last 1 min,0
head:Session statistics
Number of sessions registered with the pool,32
Average number of sessions referencing transactional state,427
head:Session age statistics
Number of sessions inactive for >10 min,14
Number of sessions inactive for >5 min,2
Number of sessions inactive for >1 min,7
Number of sessions active during last 1 min,9 The above DumpPoolStatistics page shows the AM pool shortly after the timetolive has kicked in. There is 24 app modules in the pool despite the jbo.ampool.minavailablesize being 50. There is also 32 users in the application so I would of expected there to be a corresponding number of appModules.
Thanks
Barry
Edited by: Bar on Mar 9, 2011 5:18 PM
Edited by: Bar on Mar 9, 2011 5:20 PM

I believe my problem is that the jbo.ampool.minavailablesize is higher than the normal load on the system. This is stopping app modules to be removed once the jbo.ampool.maxinactiveage time is reached, therefore the only time an AM is removed is when the jbo.ampool.timetolive limit is reached.
e.g.
* 35 users log into the application in the morning. The AM pool contains 35 AM's
* GC on the pool happens. If an AM has reached the jbo.ampool.maxinactiveage then they will not be removed because it would mean that the pool (currently 35) drops below the jbo.ampool.minavailablesize (50)
* GC happens again and the jbo.ampool.timetolive threshold is now reached on all AM's so they are all removed from the pool.

Similar Messages

  • NullpointerException after App module jbo.ampool.timetolive time

    Hi friends,
    I face a strange scenario where my page gives NullpointerException exactly after my jbo.ampool.timetolive time elapses (In my case 2min).
    When I gave the "Disconnect Application upon release" in the App configuration the same NullException raises on page load itself.
    This is the following piece of code where the null pointer raises,
    public <T> T resolveValueExpression(String expression, Class<T> type) {
    ELContext context = FacesContext.getCurrentInstance().getELContext();
    ValueExpression value = getExpressionFactory().createValueExpression(context, expression, type);
    //Null raises in this Value.getValue(Contect)
    // returns null even when value and context is not null
    return (T) value.getValue(context);
    The stack trace is as follows:
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=Cannot invoke method getAttribute() on null object
         at oracle.jbo.ExprEval.internalEvaluateGroovyScript(ExprEval.java:1048)
         at oracle.jbo.ExprEval.doEvaluate(ExprEval.java:1081)
         at oracle.jbo.ExprEval.evaluateForRow(ExprEval.java:911)
         at oracle.jbo.server.ViewObjectImpl.createViewAccessorRS(ViewObjectImpl.java:15564)
         at oracle.jbo.server.ViewRowImpl.createViewAccessorRS(ViewRowImpl.java:2572)
         at oracle.jbo.server.ViewRowImpl.createViewAccessorRS(ViewRowImpl.java:2583)
         at oracle.jbo.server.ViewRowStorage.getAttributeInternal(ViewRowStorage.java:1721)
         at oracle.jbo.server.ViewRowImpl.getAttributeValue(ViewRowImpl.java:1891)
         at oracle.jbo.server.ViewRowImpl.getAttributeInternal(ViewRowImpl.java:834)
         at com.symmetry.dashboard.panels.model.vo.EditPurchaseInvoiceViewRowImpl.getGoodsReceiptAuthoriserLOV1(EditPurchaseInvoiceViewRowImpl.java:2204)
         at com.symmetry.dashboard.panels.model.vo.EditPurchaseInvoiceViewRowImpl$AttributesEnum$71.get(EditPurchaseInvoiceViewRowImpl.java:945)
         at com.symmetry.dashboard.panels.model.vo.EditPurchaseInvoiceViewRowImpl.getAttrInvokeAccessor(EditPurchaseInvoiceViewRowImpl.java:2224)
         at oracle.jbo.server.ViewRowImpl.getAttribute(ViewRowImpl.java:864)
         at oracle.jbo.server.RowImpl.isRefreshRequired(RowImpl.java:574)
         at oracle.jbo.server.ViewRowImpl.isRefreshRequired(ViewRowImpl.java:5481)
         at oracle.jbo.server.RowImpl.isRefreshRequired(RowImpl.java:559)
         at oracle.jbo.server.RowImpl.checkAndAutoClearLOVAttributes(RowImpl.java:351)
         at oracle.jbo.server.ViewObjectImpl.activateTransients(ViewObjectImpl.java:18358)
         at oracle.jbo.server.ViewObjectImpl.activateTransients(ViewObjectImpl.java:18289)
         at oracle.jbo.server.ViewObjectImpl.activateState(ViewObjectImpl.java:18512)
         at oracle.jbo.server.ViewObjectImpl.activateState(ViewObjectImpl.java:18407)
         at oracle.jbo.server.ViewRowSetIteratorImpl.activateIteratorState(ViewRowSetIteratorImpl.java:4025)
         at oracle.jbo.server.ViewRowSetImpl.activateIteratorState(ViewRowSetImpl.java:7235)
         at oracle.jbo.server.ViewObjectImpl.activateIteratorState(ViewObjectImpl.java:18742)
         at oracle.jbo.server.ApplicationModuleImpl.activateVOs(ApplicationModuleImpl.java:8172)
         at oracle.jbo.server.ApplicationModuleImpl.doActivateState(ApplicationModuleImpl.java:7918)
         at oracle.jbo.server.ApplicationModuleImpl.doActivateAMState(ApplicationModuleImpl.java:7884)
         at oracle.jbo.server.Serializer.activate(Serializer.java:296)
         at oracle.jbo.server.DBSerializer.activateRootAM(DBSerializer.java:330)
         at oracle.jbo.server.ApplicationModuleImpl.activateState(ApplicationModuleImpl.java:6207)
         at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:219)
         at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:8933)
         at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:4496)
         at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareApplicationModule(ApplicationPoolImpl.java:2458)
         at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:2270)
         at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:3168)
         at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:460)
         at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:234)
         at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:431)
         at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:426)
         at oracle.adf.model.bc4j.DCJboDataControl.initializeApplicationModule(DCJboDataControl.java:516)
         at oracle.adf.model.bc4j.DCJboDataControl.getDataProvider(DCJboDataControl.java:869)
         at oracle.adf.model.binding.DCDataControl.internalGet(DCDataControl.java:1963)
         at oracle.adf.model.bc4j.DCJboDataControl.internalGet(DCJboDataControl.java:855)
         at oracle.adf.model.binding.DCDataControl.get(DCDataControl.java:1929)
         at javax.el.MapELResolver.getValue(MapELResolver.java:164)
         at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:173)
         at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:200)
         at com.sun.el.parser.AstValue.getValue(Unknown Source)
         at com.sun.el.ValueExpressionImpl.getValue(Unknown Source)
         at com.symmetry.dashboard.panels.util.BackingUtilsImpl.resolveValueExpression(BackingUtilsImpl.java:36)
         at com.symmetry.dashboard.panels.util.BackingUtilsImpl.getApplicationModuleForDataControl(BackingUtilsImpl.java:29)
         at com.symmetry.dashboard.panels.util.BackingUtils.getApplicationModuleForDataControl(BackingUtils.java:21)
         at com.symmetry.dashboard.panels.view.backing.purchase.EditInvoice.viewMatchedOrders(EditInvoice.java:1070)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.el.parser.AstValue.invoke(Unknown Source)
         at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
         at javax.faces.component.UIViewRoot.notifyPhaseListeners(UIViewRoot.java:608)
         at javax.faces.component.UIViewRoot.notifyBefore(UIViewRoot.java:510)
         at javax.faces.component.UIViewRoot.encodeBegin(UIViewRoot.java:564)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:928)
         at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266)
         at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197)
         at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189)
         at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:777)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:293)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:213)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    Caused by: java.lang.NullPointerException: Cannot invoke method getAttribute() on null object
         at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:77)
         at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:750)
         at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:727)
         at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:17)
         at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
         at bc4j.CreatedBy.gs.run(bc4j.CreatedBy.gs.groovy:1)
         at oracle.jbo.ExprEval.internalEvaluateGroovyScript(ExprEval.java:1032)
         ... 117 more
    Pls do give be possible solution to fix this

    I believe my problem is that the jbo.ampool.minavailablesize is higher than the normal load on the system. This is stopping app modules to be removed once the jbo.ampool.maxinactiveage time is reached, therefore the only time an AM is removed is when the jbo.ampool.timetolive limit is reached.
    e.g.
    * 35 users log into the application in the morning. The AM pool contains 35 AM's
    * GC on the pool happens. If an AM has reached the jbo.ampool.maxinactiveage then they will not be removed because it would mean that the pool (currently 35) drops below the jbo.ampool.minavailablesize (50)
    * GC happens again and the jbo.ampool.timetolive threshold is now reached on all AM's so they are all removed from the pool.

  • How to delete trailing zeros after the decimal point in the ALV sum

    Hello Expert,
    In my alv output, I need to sum up one column, but in the sum result, I don't want to display zeros after the decimal point.
    for example,
    If the sum is 134.00, I only want to display 134 on the alv.
    Does any expert have idea about it?
    Thanks in advance,
    best regards, Johnny

    Hi ,
    Use following
    SHIFT variable RIGHT/LEFT DELETING TRAILING '0'.
    For more variations ,
    just write SHIFT and press f4 , it will show you the information you need.
    Hope this is helpful,
    Regards,
    Uma Dave

  • How to elininate the Zeros after the decimal

    Hi,
    I columns in the scheduler table has BEGIN_DAY BEGIN_MONTH BEGIN_YEAR and the values are coming like 12.00, 11.00, 2009.00.
    In the database there is no zeros after the decimal but when the tables are imported to OBIEE the see the zeros in the above columns. Is there any way to eliminate the zeros after the decimal points in the RPD.
    Rgds,
    Amit

    It should not display zeroes if you set the column type to INT in Physical.. probably you might have forgotten to refresh the Server Metadata...
    Other way you can give a try is - In Answers, go to Column Properties => Data Format and check 'Override Default Data Format' then choose 'Decimal Places' to '0'..
    Note: this eliminates 0s only in this report..

  • How to cut the zeros after the decimal point ?

    Hello everybody,
    does anyone know a solution how to cut the zeros after the decimal point at at CHAR data field?
    For example the field
    &RM06P-PRMG1&
    This is a char field in the database, so that the command
    &RM06P-PRMG1(.0C)&
    doesn't work.
    At the moment the output on the form is like that
    124,000
    It shoud be like that
    124
    It would be great if anyone could help me!
    TIA!
    Strobbel

    Hi Strobbel,
    If you are working on standard sapscript, first make a zcopy of it, do the modifications in that and assign the new form to the output types in tcode NACE.
    First you need to create a program to write the logic, so go to tcode SE38 , create a new program (say zremove_zero) with Program type Executable.
    Now you will see ABAP Editor with statement;
    Report zremove_zero.
    Add the following lines below the report statement.
    *&      Form  remove_zero
    *       text
    *      <--lv_AMT  text
    FORM remove_zero  CHANGING lv_amt.
      DATA p_amt TYPE p.
      MOVE lv_amt TO p_amt.
      MOVE p_amt TO lv_amt.
    Condense lv_amt.
    ENDFORM.
    Now save and activate the program.
    Now open the zcopy of your script and Just above the statement  &RM06P-PRMG1& write the following lines;
    /: perform remove_zero in program zremove_zero
    /: changing &RM06P-PRMG1&
    /: endperform.
    Now you can see your amount printing without decimals.
    Try and let me know, hope i have guided you clearly.
    Regards
    Karthik D
    P.S.: I advice you to take help from an ABAPER.

  • Removing zeros after the decimal point       Reply with quote

    I want to remove the zeros after the decimal point, that this be done?
    Например, Example,
    120.000 => 120 120.000 => 120
    120.300 => 120.3 120,300 => 120.3

    hiiiiiiii sweetsoni,
    try this may it helpful for you
    SHIFT string RIGHT DELETING TRAILING '0'.
    SHIFT string RIGHT DELETING TRAILING '.'.
    for example
    DATA: v1 (6) TYPE c VALUE '100 .000 ',
    v2(6)  TYPE c VALUE '100.200'.
    SHIFT v1 RIGHT DELETING TRAILING '0'.
    SHIFT v1 RIGHT DELETING TRAILING '.'.
    SHIFT v2 RIGHT DELETING TRAILING '0'.
    SHIFT v2 RIGHT DELETING TRAILING '.'.
    ultimately
    v1 = '100',
    v2 = '100.2'.
    Moderator message: question and answer copied from external source, points deducted, do not repeat!
    Edited by: Thomas Zloch on May 19, 2010 2:14 PM

  • Trailing zeroes after the decimal

    I have a program that I have to do maintenance. One of the complaints is that a "rate" field is showing the trailing zeroes. The data type is 10.6 DEC. It was embedded in screen painter. Is there something I can do to change the output to suppress trailing zeroes. If the rate is 1.24, it shows it as 1.240000.
    Thanks for your input.
    Steve

    Hi,
    You can do like this
    DATA:
      lv_decimal TYPE f DECIMALS 6,
      lv_string  TYPE string.
    lv_decimal = '1.240000'.
    WRITE lv_decimal TO lv_string.
    SHIFT lv_string RIGHT DELETING TRAILING '0'.
    CONDENSE lv_string NO-GAPS.
    write: lv_string.
    Regards,
    Satish

  • JBO-30011 on running JClient Applet for ADF (10g)

    After starting an (JClient) Applet created using "Swing/JClient for ADF" for an existing BC4J project following exception is thrown on startup:
    oracle.jbo.common.ampool.ApplicationPoolException: JBO-30011: A null session cookie application id, session id, or application pool reference (null, null, bcpackage.AppModuleLocal) was specified during cookie construction. The cookie could not be constructed.
    at oracle.jbo.common.ampool.SessionCookieImpl.<init>(SessionCookieImpl.java:112)
    at oracle.jbo.common.ampool.SessionCookieImpl.<init>(SessionCookieImpl.java:149)
    at oracle.jbo.common.ampool.DefaultSessionCookieFactory.createSessionCookie(DefaultSessionCookieFactory.java:32)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.createSessionCookie(ApplicationPoolImpl.java:415)
    at oracle.adf.model.bc4j.DataControlFactoryImpl.findOrCreateSessionCookie(DataControlFactoryImpl.java:154)
    at oracle.adf.model.bc4j.DataControlFactoryImpl.createSession(DataControlFactoryImpl.java:220)
    at oracle.jbo.uicli.mom.JUMetaObjectManager.createDataControl(JUMetaObjectManager.java:678)
    at oracle.jbo.uicli.mom.JUMetaObjectManager.createApplicationObject(JUMetaObjectManager.java:629)
    at oracle.jbo.uicli.mom.JUMetaObjectManager.createApplicationObject(JUMetaObjectManager.java:399)
    at form.AppletUserlog.startApp(AppletUserlog.java:253)
    at form.AppletUserlog.start(AppletUserlog.java:229)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Generated forms or panels are working well. Does anybody have the same problem ?

    I believe my problem is that the jbo.ampool.minavailablesize is higher than the normal load on the system. This is stopping app modules to be removed once the jbo.ampool.maxinactiveage time is reached, therefore the only time an AM is removed is when the jbo.ampool.timetolive limit is reached.
    e.g.
    * 35 users log into the application in the morning. The AM pool contains 35 AM's
    * GC on the pool happens. If an AM has reached the jbo.ampool.maxinactiveage then they will not be removed because it would mean that the pool (currently 35) drops below the jbo.ampool.minavailablesize (50)
    * GC happens again and the jbo.ampool.timetolive threshold is now reached on all AM's so they are all removed from the pool.

  • Suppressing zeroes after decimal

    Hi
    I need to suppress the zeroes after the decimal places in my form output if 00 appears after decimal.
    eg 123.00 shd be displayed as 123 .
         123.23 shd be dispalyed as 123.23.
    Could anyone help me with this
    TIA
    Regards

    hi Ankur do this way
    data: wa_input  type i,     
          wa_output type i.
    wa_input = '1.000'.
    CALL FUNCTION 'ROUND' 
      EXPORTING   
        INPUT              = wa_input
      IMPORTING  
        OUTPUT             = wa_output
      EXCEPTIONS
       INPUT_INVALID       = 1
       OVERFLOW            = 2
       TYPE_INVALID        = 3
       OTHERS              = 4.
    IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    write:/ wa_output.

  • Zeroes after decimal coming unnecessarily

    Hi ,
      I have an input field for amount, for which i have a default value of "20", but it gets displayed as 20,000000000 . i dont want the zeroes after the decimal. The data type is "BCA_TAMNT_BAPI", which i can change as i have to pass it to BAPI.
    Kindly help out:)

    Hi,
    Check the value of the input field amount you are trying to populate in the DEBUGGING mode.
    Check the data type fo this amount field and the BAPI field dataype. Sometimes the the displayed value (OUTPUT format) and the actaul avlue in the fiedl (INTERNAL FORMAT) both differs. hence cheeck the actatula valuein the debugging .
    Or
    Use the FM for this conversion internally before passing to the BAPI (like converison Exit FM)
    Regards
    Lekha

  • Ending drop cap styling after a paragraph return

    I’m working back in the dark ages of CS4 and I’m having an issue with drop caps and my workflow in the office. I have a drop-cap applied to the first paragraph via the Paragraph Style and I have apply next style active. When editors go into the text box and add a new paragraph, mid way through the existing first paragraph, the newly created paragraph had the drop cap applied. How do I get InDesign to deactivate the drop cap command after the first word or first sentence so this will not happen.

    You'll just have to apply a new paragraph style to the new paragraph.
    The Next Style doesn't apply here, because there's text after the cursor
    where you split the paragraph.
    So just apply a new paragraph style that doesn't have a drop cap --
    verty quick if you use a keyboard shortcut for it.

  • Excel copy drops leading zeros

    I have records with a part number that is a text field, but contains digits. When I export to excel, the excel spreadsheet drops leading zeros from the part number.
    How do I get the export to treat this as a text field and retain the zeros.
    No, I have no option to make this a number field.

    When the report is displayed on the screen initially for column "blah" the Conditional Display PL/SQL Expression "INSTR(NVL(:REQUEST,'YABBADABBADO'),'EXCEL') = 0" evaluates to TRUE because REQUEST does not have 'EXCEL' in it causing the value to display on the screen. For column "blah_excel" the Conditional Display PL/SQL Expression "INSTR(NVL(:REQUEST,'YABBADABBADO'),'EXCEL') != 0" evaluates to FALSE because REQUEST does not have 'EXCEL' in it causing "blah_excel" to not display.
    When the user clicks to download to CSV the page's REQUEST has 'EXCEL' in it. I think actual request value is 'FLOW_EXCEL'. For column "blah" the Conditional Display PL/SQL Expression "INSTR(NVL(:REQUEST,'YABBADABBADO'),'EXCEL') = 0" evaluates to FALSE because REQUEST has 'EXCEL' in it causing the value to not appear in the CSV. For column "blah_excel" the Conditional Display PL/SQL Expression "INSTR(NVL(:REQUEST,'YABBADABBADO'),'EXCEL') != 0" evaluates to TRUE because REQUEST does have 'EXCEL' in it causing "blah_excel" to appear in the CSV.
    http://mikerife.blogspot.com/2007/08/preserve-leading-zeros-in-apex-csv.html
    Mike

  • Graphing History to not drop to Zero

    We are on 4.1 PL9. We have a requirement where the history value should not drop to zero in the graph. INstead it should stop at the point in the last time bucket where there is a non-zero value. Similarly Forecast in the graph should start from current bucket that will typically have non-zero value. The options in the graph do not seem to work and even horizon specific initialization to the Keyfigures does not do the trick. Any suggestions welcome to achieve this requirement.Unfortunately 4.1 does not discriminate a null and a zero.

    Dear Srinivas,
    I suugest you to use an auxiliar K-F just to graph, then implement a Macro to "interpolate" values for the K-F if zero is between two values you can assign an average instead of zero.
    Best regards,
    Carlos Rodríguez

  • Restrict the creation of documents in the cfolders after the Bid End Date

    Hi All,
    The System allows the bidders to create documents in cfolders even after the Bid Submission deadline has reached, whereas the Quotation would not be submitted as the Bid Submission date is in the past. Is there any way to restrict the creation of documents in the cfolders after the Bid Submission End Date?
    Waiting for your reply,
    Mary

    Hi Mary,
    In the competitive scenario in the first screen itself there are fields for "Due date" and "Due time". Once these entries are maintained, that particular collaboration will get freezed then and no documents or bids can be submitted post that time.
    I hope this will solve your query.
    Regards,
    Nishit Jani
    Award points only if you find the information useful.

  • Extend End date after the end date has reached

    Hi gurus,
        We are using SRM5.0 on ECS with backend ECC5.0.
        We notice that after the end date of bid has reached even though there is a bid submitted by supplier , the purchaser still can extend the end date to a later date as long as he has not made the accept or reject choice.
        If it is the case, the purchaser can view the price after the end date reached and then extend the end date and maybe tell other supplier what the price the opponent has submitted. This is not allowed and should be penaltied.
        We just want to know how to avoid this in the term of system. Can we make the
    end date field unchangeable after the end date has reached? or any other solutions?
    Thank you in advance.
    Message was edited by:
            YE Wang

    Hi,
    As Teja and SAndeep mentioned,you can go for either the Approval or BADI approach.
    In case you are implementing the BADI,you can make the concerned fields grayed out so no changes are made but then this would mean that <b>no changes
    </b> can be done at all after the END date has been reached.
    In case of workflow,you can have you starting conditions in which you will compare the end date and the system date .If same,you can trigger  a Workflow for approval of any changes to be done further.So even if the changes are made,the chnages are approved by a higher authority.
    Another way would be to implement the "BBP_DOC_CHECK_BADI" to check whether the end date has been reached and then allow the user to do any changes.You can use the FM "BBP_PD_BID_GETDETAIL" to get the details of the BI and then check.In this case,you can additionally check for other parameters of the User like role,authorisation based on which he can make changes in exceptional cases.
    BR,
    Disha.
    <b>Pls reward points for useful answers.</b>

Maybe you are looking for

  • Help Connect my Mid-2009 Macbook Pro to my new YAMAKASI CATLEAP Q270 SE 27" LED 2560X1440 WQHD DVI-D Dual Computer Monitor

    Hi, I am trying to connect my Mid-2009 Macbook Pro to my new YAMAKASI CATLEAP Q270 SE 27" LED 2560X1440 WQHD DVI-D Dual Computer Monitor.  I am not having a lot of luck.  My machine: OS: Mac OS X Lion 10.7.4 (11E53) Graphics Card: NVIDIA GeForce 9400

  • Airport Extreme $1.99 upgrade.....where is it?......what is it for?

    I saw an article about Apple releasing an upgrade to the Airport Extreme. Something to do with making it so Core 2 Duo Macs can utilize their built-in "N" type networking for faster speeds. 1) Which Airport Extremes will be able to use these download

  • Unknown error in iTunes Store 11222

    For the past couple of days when I've tried to sync my iPod, I've been getting a message "cannot connect to iTunes Store. Check your network connection and try again." Network connection checked. Even ran iTunes diagnostics to confirm that my iTunes

  • Read-write ordering - causality casualty :)

    hello, {color:lightgray}my name is gnat and I am threadaholic{color} I'm trying to figure if particular reordering of reads and writes is possible or not. The code snippet looks about as follows: class Test {     private static final int ORIGINAL = 0

  • PDF settings question

    I have been using Acrobat Standard v 8 to print letters out of Word.  My company logo - a gray scale, round logo - is a small jpg file inserted into header of the the Word doc (2003 or 2010).  When viewed on screen, the pdf output displays a fracture