Problem of FOP memory with APEX ...

Hello everyone !!!!
I installed FOP in Oracle Applications Server, and said ApEx to use FOP to generate PDF files.
However, the memory of FOP is very limited because it can't create PDF files if there are more than about 1.200 lines in the Report I want to print.
I found on the net there was something to do for this :
- launch the JVM with "java -Xmx1G" to use a memory of 1Go
- create FOP_OPTS="-Xmx1G"in the file $HOME/.foprc
But the file doesn't exist, and I don't access to any JVM ...
Could anyone help me to know what to do ????
Thanks by advance,
Pierre C.

Hi Varad,
I tried your solution, however it didn't function :
I found the opmn.xml file and changed the java-option for the OC4J contener of my application, setting it to "... -Xms512m -Xmx512m".
Then I tried to print a PDF Report with about 1.700 lines, but the file was "corrupted", but with 1.300 lines it's ok.
I also tried the Metalink note 744866.1.
Is there any other think to do in order to solve this problem ??
Thanks by advance,
Pierre C.

Similar Messages

  • Problem during configuring SSO with APEX 4.1

    Hello everybody,
    I'm trying to configure my APEX application to use SSO, but I have big problems with ssosdk902.zip file.
    During execution of the loadsdk.sql script it creates package "wwsec_sso_enabler" but APEX 4.1 wants to have "wwsec_sso_enabler_private". For me it a clear sign, that I'm using some old SSOSDK.
    Can somebody tell me where to find the current "ssosdk"?
    I'm using OAS10gR2 and the interesting thing is that in the DB schema ORASSO package "wwsec_sso_enabler_private" exists, but it doesn't helps me. It is at the other machine. I must have it on the same instance, where APEX is running.
    It looks like packaging error by Oracle. Can somebody help me?
    Thanks,
    Ianko

    Hi Anton,
    that's why I added the IF statement around the code block, to guarantee that it only runs if the URL contains auto-login data (i.e. P101_UNAME). Setting FSP_AFTER_LOGIN_URL to null avoids a loop when the login fails. If we keep FSP_AFTER_LOGIN_URL, the wwv_flow_custom_auth_std.login procedure will redirect to page 101 and the before header process will run again, re-executing wwv_flow_custom_auth_std.login , etc.
    It might be clearer to put the before header code into the authentication itself. The invalid session procedure is the right place for that, but it's use is very sparsely documented yet.
    I created a 2nd copy of your original application (22274), where I removed the before header process and added this invalid session procedure:
    procedure autologon_on_invalid_session
    is
      v_user                VARCHAR2(4000);
      v_pass                VARCHAR2(4000);
      v_fsp_after_login_url VARCHAR2(4000) := :FSP_AFTER_LOGIN_URL;
      v_user_pos            pls_integer    := instr(v_fsp_after_login_url, 'P101_UNAME:');
    BEGIN
      if apex_application.g_flow_step_id != 101 and v_user_pos > 0 then
        v_user := substr(v_fsp_after_login_url, v_user_pos+11);
        wwv_flow_custom_auth_std.login(
            P_UNAME       => v_user,
            P_PASSWORD    => v_pass,
            P_SESSION_ID  => v('APP_SESSION'),
            P_FLOW_PAGE   => :APP_ID||':1' );
        apex_application.stop_apex_engine;
      end if;
    END;If the current page is not 101 (the login page) and the URL (which was copied into the deep link item) contains the autologin credentials, call login. The finall call to apex_application.stop_apex_engine stops Apex from continuing it's default invalid session handling, which is to redirect to the login page.
    Regards,
    Christian

  • Apex with XE10g/Tomcat 6.0.13 PDF Print with Apex  FOP.WAR

    Apex with XE10g/Tomcat 6.0.13 PDF Print with Apex fop.war/apex_fop.jsp
    Hello,
    Excuse me bad english.
    I have a problem with Oracle XE and Printing from Reports over Tomcat 6.0.13.
    I have update Oracle XE with Apex 3.1 and it works fine.
    Now i have tried to Print a report to PDF. So i have deployed the FOP.WAR from Apex Utilities under Tomcat.
    I see in Tomcat Manager http://localhost:8888/manager/html/list that the FOO
    has been deployed and is running.
    If i try to print then i get this Message down to this page.
    Can anybody give me a hint to solve this problem???
    Hint
    To resolve the problem i have installed Oracle OC4J with same Port and deployed
    the same foo.war file.
    Then works and all printing from Oracle Apex work fine and okay.
    So i thing the Apex and Oracle work correct.
    But we have a small Application so i would prefer to work with Tomcat a application Server.
    Becaus of previous Errors have copied some *.jar files to C:\tomcat6.0.13\lib
    but i thing this is not the Problem.
    18.03.2007 18:12 546.765 xml.jar
    18.03.2007 18:07 634.772 xmlmesg.jar
    18.03.2007 18:14 1.238.899 xmlparserv2.jar
    10.06.2007 22:59 674.005 xquery.jar
    18.03.2007 18:11 3.059 xsqlserializers.jar
    18.03.2007 18:14 194.691 xsu12.jar
    10.11.2005 13:13 7.043.169 tools.jar
    .... and preinstalled files
    type Exception report
    message
    description The server encountered an internal error () that prevented it from fulfilling this request.
    exception
    org.apache.jasper.JasperException: java.lang.IllegalStateException: getOutputStream() has already been called for this response
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:429)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause
    java.lang.IllegalStateException: getOutputStream() has already been called for this response
    org.apache.catalina.connector.Response.getWriter(Response.java:604)
    org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)
    org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
    org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
    org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:186)
    org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:118)
    org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:77)
    org.apache.jsp.apex_005ffop_jsp._jspService(apex_005ffop_jsp.java:120)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    ------------------------------------------------------------------------

    at the end of the apex_fop.jsp put the follow code just before the driver.run(); line:
    out.clear();
    out = pageContext.pushBody();
    and explanation of why this works is here:
    http://forums.sun.com/thread.jspa?threadID=5307942

  • Apache Fop with apex 4.2

    Dears,
    I need to download my reports in pdf and formatted ms excel file, I do altos of search and found that the free way to do such is to configure the Fop in the apex, please guide me to do that :
    1- How to configure the Fop in apex 4.2 ?
    2- How to use it to download my query ( report ) in PDF / Excel ?
    3- Is it possible to modify the excel format ( font type , font size , header background color ..etc ) ?
    Please, feeds me the steps; since I am new in this field .
    thanks and regards
    Salman

    FOP will generate pdf's in a limited format, unless you build an xsl stylesheet and attach it to you report in APEX... See this link for details : http://www.oracle.com/technetwork/developer-tools/apex/application-express/configure-printing-093060.html
    For excel output with some fancied up fonts and such in APEX... look at this free package: http://technology.amis.nl/2011/02/19/create-an-excel-file-with-plsql/
    Thank you,
    Tony Miller
    Ruckersville, VA

  • Problems with integrating YUI Layout Manager with APEX

    Hello,
    I have a problem about the YUI Layout Manager and APEX.
    This is the link to the Layout Manager, which I want to integrate:
    http://developer.yahoo.com/yui/layout/
    I tried to integrate it and in Firefox everything is fine!
    But with Internet Explorer the page is damaged.
    Look at the sample on apex.oracle.com:
    http://apex.oracle.com/pls/otn/f?p=53179:1
    Can anybody help me with this issue?
    I think this couldn`t be a big problem, becaus in FF it works correctly, but I don`t get the point to run that in IE7.
    Thank you,
    Tim

    Hello,
    now I put some color in it, but it does not help me pointing out the problem.
    The Login for my Account is:
    My Workspace is: EHRIC02
    Username: [email protected]
    Password: ehric02
    Is there anybody who have implementet the YUI Layout Manager with APEX? Perhaps that isn`t possible with APEX?
    I know that John Scott played with YUI a few times, has he tried out the Layout Manager?
    Thank you,
    Tim

  • Problem with Apex: wwv_flow.accept

    Hello!
    I've developped an application which worked perfect since nearly one year. Now - suddenly - when changing data in an tabular form and pressing the submit button this page appears:
    <h1>Not found</h1>
    The requested URL /apex/wwv_flow.accept was not found on this server
    <br>
    From time to time it seems to work again, but then - after changing some data again... it appears again. Turning Debugging on has no effect. Do someone know or give me some advice what went wrong? Thank you Johann Message was edited by: horvatj
    I aksed this topic in the APEX Forum - see thread:
    Problem with Apex: wwv_flow.accept
    Scott answered:
    Johann - Check the Apache error log for more details.
    Okay, but XE doesn't use Apache!?
    How can I access the logfiles?
    Where can I find them?
    Thank you
    Johann

    If you believe it or not, I solved without any logfile...
    The problem was some kind of corrupt data.
    After correcting this everything works fine again. I really don't know why this not found error occurs, but ;-)
    Thanks Johann

  • Problem with Apex hosted SQL Workspace

    Hi,
    I am having trouble with using currval on this site in SQL workshop. I have a demo table and have defined a sequence via sql. I successfully insert a sequence_name.nextval but when I try to add a related child record with current value of the sequence I keep getting this:
    ORA-08002: sequence ORDERS_ORDER#_SEQ.CURRVAL is not yet defined in this session
    I can check on nextval from dual and I can select the currval from dual also but when I try to use the currval in an insert, I get the same error above. Also, sometimes I get the same message even when selecting currval from dual. Seems like a problem with Apex at this hosted site. Or does Apex SQL workshop have issues with currval.
    PM

    Scott, Can you explain a little more about the difference between a hidden item that is set to display never & the other type of item which I am assuming is "display as text saves state" and display never?
    When I viewed the source for both of these I could not see the items in source code.
    Also for an item that is passed into a popup I am exposing hidden item's identity is there a different way to pass values... here is my example:
    <!-- Begin of popup for DNS_NAME -->
    <script language="JavaScript" type="text/javascript">
    <!--
    <!-- window size was 800*600 -->
    <!-- window size was 400*300 -->
    function popupPage(url) {w = open(url,"winDnsName","Scrollbars=1,resizable=1,width=500,height=450"); if (w.opener == null) w.opener = self; w.focus(); }
    //-->
    </script>
    <script language="JavaScript" type="text/javascript">
    function callDnsNamePopup (IPId) {
    var IPId = document.getElementById('P103_IP_ID').value;
    var url;
    url = 'f?p=110:106:2066309280674317::::P106_IP_ID:' + IPId;
    w = open(url,"winDnsName","Scrollbars=1,resizable=1,width=800,height=600");
    if (w.opener == null)
    w.opener = self;
    w.focus();
    </script>
    <!-- END of popup for DNS Name -->
    At the same time if I set an item as hidden and display never I cannot use it with a call to a popup...

  • Problem with apex

    i install oracle 10g and oracle application server 10g (http server)
    and i install apex and i use the guide that appendxed with apex intallation for intallation
    after running the scripts
    i edited the dads file with the following information
    Alias /i/ "g:/apex/images/"
    AddType text/xml xbl
    AddType text/x-component htc
    <Location /pls/apex>
    Order deny,allow
    PlsqlDocumentPath docs
    AllowOverride None
    PlsqlDocumentProcedure wwv_flow_file_mgr.process_downloadd
    PlsqlDatabaseConnectString nasser:7777:service_name apex
    PlsqlNLSLanguage AMERICAN_AMERICA.AL32UTF8
    PlsqlAuthenticationMode Basic
    SetHandler pls_handler
    PlsqlDocumentTablename wwv_flow_file_objects$
    PlsqlDatabaseUsername APEX_PUBLIC_USER
    PlsqlDefaultPage apex
    PlsqlDatabasePassword pub
    PlsqlRequestValidationFunction wwv_flow_epg_include_modules.authorize
    Allow from all
    </Location>
    after that i request the url http://nasser:7777/pls/apex
    but i recieved the "Internal Server Error"
    what is the problem
    if there is an error in dads file
    help me please
    Edited by: user3683976 on Feb 9, 2009 3:19 PM

    The DAds file :
    Alias /i/ "g:/apex/images/"
    AddType text/xml xbl
    AddType text/x-component htc
    <Location /pls/apex>
    Order deny,allow
    PlsqlDocumentPath docs
    AllowOverride None
    PlsqlDocumentProcedure wwv_flow_file_mgr.process_downloadd
    PlsqlDatabaseConnectString nasser:1521:orcl SIDFormat
    PlsqlNLSLanguage AMERICAN_AMERICA.AL32UTF8
    PlsqlAuthenticationMode Basic
    SetHandler pls_handler
    PlsqlDocumentTablename wwv_flow_file_objects$
    PlsqlDatabaseUsername APEX_PUBLIC_USER
    PlsqlDefaultPage apex
    PlsqlDatabasePassword pub
    PlsqlRequestValidationFunction wwv_flow_epg_include_modules.authorize
    Allow from all
    </Location>
    tnsname.ora file :
    # tnsnames.ora Network Configuration File: g:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    ORCL =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = nasser)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = orcl)
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    listner.ora file
    # listener.ora Network Configuration File: g:\oracle\product\10.2.0\db_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = g:\oracle\product\10.2.0\db_1)
    (PROGRAM = extproc)
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = nasser)(PORT = 1521))
    )

  • Generate pdf with apex listener 2.0

    hi,
    we would like to generate pdf out of apex.
    as long as we have text (IRR) WITHOUT special characters (öäü), everything is working fine.
    when we have this characters in a text-columng (IRR), then we get a .pdf with the following content:
    javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: An invalid XML character (Unicode: 0x3) was found in the element content of the document.
    could this be a problem of the characterset? but if, where to change what?
    - we defined in ADMIN in 'report printing' / 'instance-settings': oracle-apex-listener
    - we are working with apex-listener 2.0 (integrated in weblogic-server)
    - we work with APEX 4.2.1.00.08
    thanks for any ideas
    roland
    Edited by: user514151 on 01.04.2013 23:24

    I have this same problem with windows-1250 encoding.
    Invalid byte 1 of 1-byte UTF-8 sequence.
    com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
         at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:687)
         at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:557)
         at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1753)
         at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipChar(XMLEntityScanner.java:1426)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2754)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
         at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
         at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
         at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
         at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
         at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
         at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
         at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302)
         at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
         at oracle.dbtools.apex.fop.FOPUtils.fop2pdf(FOPUtils.java:72)
         at oracle.dbtools.apex.hooks.postProcess.FOP2PDF.requestTOPDF(FOP2PDF.java:87)
         at oracle.dbtools.apex.hooks.postProcess.FOP2PDF.postProcess(FOP2PDF.java:49)
         at oracle.dbtools.apex.hooks.ProcessorRegistry.postProcess(ProcessorRegistry.java:56)
         at oracle.dbtools.apex.ModApex.handleRequest(ModApex.java:241)
         at oracle.dbtools.apex.ModApex.doGet(ModApex.java:98)
         at oracle.dbtools.apex.ModApex.service(ModApex.java:316)
         at oracle.dbtools.rt.web.HttpEndpointBase.modApex(HttpEndpointBase.java:260)
         at oracle.dbtools.rt.web.HttpEndpointBase.service(HttpEndpointBase.java:110)
    Any solution ?
    Regards
    md

  • MIXING ORIGINAL APPLE MEMORY WITH MEMORY FROM ANOTHER MANUFACTURER

    Hi everyone,
    I'm about to hop on the mac train and buy a macbook 2.16GHz( the recent previous black model)
    It's coming with 1GB of memory and I wanted to buy 2GB to add to it. I found a good deal for a OWC 2GB DDR2 PC2-5300 667MHz DIMM(it's one stick of 2GB).
    Is it compatible to mix different memory makes and if so, is it also optimal? Would the optimizing power be the same if I used all the memory from one manufacturer or it makes no difference? Thanks.

    bdkjones wrote:
    As long as the memory is by a major manufacturer (Samsung, Hynix, Micron, etc) it should not matter.
    You do get a slight advantage by using 2 of the same capacity RAM modules. (i.e. 2x1GB chips or 2x2GB chips). In practice, however, this performance gain really isn't noticeable. You have to run a memory benchmark test to see the difference.
    I remember there was this supposed IT guy who claimed that different brands of memory "fight it out". Some of the answers were absolutely hilarious. Seriously, there's nothing that consistent about a single brand of memory. There are always variations, but I wouldn't worry about a thing provided the memory actually meets its published specs. You get variation quality with memory modules that aren't fully-branded by one of the major memory IC manufacturers, but there are some reputable brands out there (OCZ, PNY, Patriot, etc).
    I have an iBook G4 1.42. For two+ years I've been running the permanent Samsung memory with a 1 GB Micron PC2700 module. I've never encountered anything that suggests that there is a problem with it.
    I've also read the Intel specs on what the chipset does with memory sized identically. Apparently it can do that very same thing (memory interleaving) even if the sizes aren't matched. However - it'll only do that for up to the size of the smaller module, and the remainder of the larger module isn't interleaved.

  • I have a serious (and bizarre!) issue with my novation impulse (Although i've tried it with two other keyboards and i still have the same problem) and its compatibility with mainstage 3

    i have a serious (and bizarre!) issue with my novation impulse (Although i've tried it with two other keyboards and i still have the same problem) and its compatibility with mainstage 3.
    the problem is best explained on the following one - page thread: 
    https://discussions.apple.com/thread/3951518?start=0&tstart=0
    (Clearly i'm not alone in this problem, although i think i figured out what's going wrong a little more than he did...read on!)
    his solution, to put mainstage in jump mode, is very unsatisfactory to me, as it bounces all of a sudden to drastically different settings.
    basically, my analysis is that my controller is NOT receiving MIDI date from mainstage.  in other words, mainstage knows what my controller is doing, but my controller doens't know what mainstage is doing.
     let's say i turn the knob all the way to the right ... 127...and the virtual fader goes to the right like it's supposed to. 
    now...next...let's say i change to a different patch, where that same VIRTUAL fader is not at the max clockwise position..maybe it's only at 1pm.  now when i turn the physical knob to the RIGHT, the midi data is still at 127 on the controller!  it didn't "reset" to sync up with the new level (say 80 or so) setting on the new patch.  so i can't increase that new setting of 80 by continuing to turn the knob to the right.  i have to turn it all the way to zero,...and then continue PAST zero until the controller thinks that IT is at 0...at that point the controller and mainstage are in agreement, and things work fine....so bascially, the keyboard thinks the level is at max...but mainstage thinks the level is at 1pm.
    i am using Logic 9, and i have a macbook pro 2.9 Ghz I7 with 8 gigs of memory and OS X 10.8.4

    Hi Josh,
    Thanks for taking the time to contact us here a Novation for technical support. Lets continue to correspond via email so we can get your issue resolved.
    Thanks.
    Mike Towns

  • Pre-loading Oracle text in memory with Oracle 12c

    There is a white paper from Roger Ford that explains how to load the Oracle index in memory : http://www.oracle.com/technetwork/database/enterprise-edition/mem-load-082296.html
    In our application, Oracle 12c, we are indexing a big XML field (which is stored as XMLType with storage secure file) with the PATH_SECTION_GROUP. If I don't load the I table (DR$..$I) into memory using the technique explained in the white paper then I cannot have decent performance (and especially not predictable performance, it looks like if the blocks from the TOKEN_INFO columns are not memory then performance can fall sharply)
    But after migrating to oracle 12c, I got a different problem, which I can reproduce: when I create the index it is relatively small (as seen with ctx_report.index_size) and by applying the technique from the whitepaper, I can pin the DR$ I table into memory. But as soon as I do a ctx_ddl.optimize_index('Index','REBUILD') the size becomes much bigger and I can't pin the index in memory. Not sure if it is bug or not.
    What I found as work-around is to build the index with the following storage options:
    ctx_ddl.create_preference('TEST_STO','BASIC_STORAGE');
    ctx_ddl.set_attribute ('TEST_STO', 'BIG_IO', 'YES' );
    ctx_ddl.set_attribute ('TEST_STO', 'SEPARATE_OFFSETS', 'NO' );
    so that the token_info column will be stored in a secure file. Then I can change the storage of that column to put it in the keep buffer cache, and write a procedure to read the LOB so that it will be loaded in the keep cache. The size of the LOB column is more or less the same as when creating the index without the BIG_IO option but it remains constant even after a ctx_dll.optimize_index. The procedure to read the LOB and to load it into the cache is very similar to the loaddollarR procedure from the white paper.
    Because of the SDATA section, there is a new DR table (S table) and an IOT on top of it. This is not documented in the white paper (the white paper was written for Oracle 10g). In my case this DR$ S table is much used, and the IOT also, but putting it in the keep cache is not as important as the token_info column of the DR I table. A final note: doing SEPARATE_OFFSETS = 'YES' was very bad in my case, the combined size of the two columns is much bigger than having only the TOKEN_INFO column and both columns are read.
    Here is an example on how to reproduce the problem with the size increasing when doing ctx_optimize
    1. create the table
    drop table test;
    CREATE TABLE test
    (ID NUMBER(9,0) NOT NULL ENABLE,
    XML_DATA XMLTYPE
    XMLTYPE COLUMN XML_DATA STORE AS SECUREFILE BINARY XML (tablespace users disable storage in row);
    2. insert a few records
    insert into test values(1,'<Book><TITLE>Tale of Two Cities</TITLE>It was the best of times.<Author NAME="Charles Dickens"> Born in England in the town, Stratford_Upon_Avon </Author></Book>');
    insert into test values(2,'<BOOK><TITLE>The House of Mirth</TITLE>Written in 1905<Author NAME="Edith Wharton"> Wharton was born to George Frederic Jones and Lucretia Stevens Rhinelander in New York City.</Author></BOOK>');
    insert into test values(3,'<BOOK><TITLE>Age of innocence</TITLE>She got a prize for it.<Author NAME="Edith Wharton"> Wharton was born to George Frederic Jones and Lucretia Stevens Rhinelander in New York City.</Author></BOOK>');
    3. create the text index
    drop index i_test;
      exec ctx_ddl.create_section_group('TEST_SGP','PATH_SECTION_GROUP');
    begin
      CTX_DDL.ADD_SDATA_SECTION(group_name => 'TEST_SGP', 
                                section_name => 'SData_02',
                                tag => 'SData_02',
                                datatype => 'varchar2');
    end;
    exec ctx_ddl.create_preference('TEST_STO','BASIC_STORAGE');
    exec  ctx_ddl.set_attribute('TEST_STO','I_TABLE_CLAUSE','tablespace USERS storage (initial 64K)');
    exec  ctx_ddl.set_attribute('TEST_STO','I_INDEX_CLAUSE','tablespace USERS storage (initial 64K) compress 2');
    exec  ctx_ddl.set_attribute ('TEST_STO', 'BIG_IO', 'NO' );
    exec  ctx_ddl.set_attribute ('TEST_STO', 'SEPARATE_OFFSETS', 'NO' );
    create index I_TEST
      on TEST (XML_DATA)
      indextype is ctxsys.context
      parameters('
        section group   "TEST_SGP"
        storage         "TEST_STO"
      ') parallel 2;
    4. check the index size
    select ctx_report.index_size('I_TEST') from dual;
    it says :
    TOTALS FOR INDEX TEST.I_TEST
    TOTAL BLOCKS ALLOCATED:                                                104
    TOTAL BLOCKS USED:                                                      72
    TOTAL BYTES ALLOCATED:                                 851,968 (832.00 KB)
    TOTAL BYTES USED:                                      589,824 (576.00 KB)
    4. optimize the index
    exec ctx_ddl.optimize_index('I_TEST','REBUILD');
    and now recompute the size, it says
    TOTALS FOR INDEX TEST.I_TEST
    TOTAL BLOCKS ALLOCATED:                                               1112
    TOTAL BLOCKS USED:                                                    1080
    TOTAL BYTES ALLOCATED:                                 9,109,504 (8.69 MB)
    TOTAL BYTES USED:                                      8,847,360 (8.44 MB)
    which shows that it went from 576KB to 8.44MB. With a big index the difference is not so big, but still from 14G to 19G.
    5. Workaround: use the BIG_IO option, so that the token_info column of the DR$ I table will be stored in a secure file and the size will stay relatively small. Then you can load this column in the cache using a procedure similar to
    alter table DR$I_TEST$I storage (buffer_pool keep);
    alter table dr$i_test$i modify lob(token_info) (cache storage (buffer_pool keep));
    rem: now we must read the lob so that it will be loaded in the keep buffer pool, use the prccedure below
    create or replace procedure loadTokenInfo is
      type c_type is ref cursor;
      c2 c_type;
      s varchar2(2000);
      b blob;
      buff varchar2(100);
      siz number;
      off number;
      cntr number;
    begin
        s := 'select token_info from  DR$i_test$I';
        open c2 for s;
        loop
           fetch c2 into b;
           exit when c2%notfound;
           siz := 10;
           off := 1;
           cntr := 0;
           if dbms_lob.getlength(b) > 0 then
             begin
               loop
                 dbms_lob.read(b, siz, off, buff);
                 cntr := cntr + 1;
                 off := off + 4096;
               end loop;
             exception when no_data_found then
               if cntr > 0 then
                 dbms_output.put_line('4K chunks fetched: '||cntr);
               end if;
             end;
           end if;
        end loop;
    end;
    Rgds, Pierre

    I have been working a lot on that issue recently, I can give some more info.
    First I totally agree with you, I don't like to use the keep_pool and I would love to avoid it. On the other hand, we have a specific use case : 90% of the activity in the DB is done by queuing and dbms_scheduler jobs where response time does not matter. All those processes are probably filling the buffer cache. We have a customer facing application that uses the text index to search the database : performance is critical for them.
    What kind of performance do you have with your application ?
    In my case, I have learned the hard way that having the index in memory (the DR$I table in fact) is the key : if it is not, then performance is poor. I find it reasonable to pin the DR$I table in memory and if you look at competitors this is what they do. With MongoDB they explicitly says that the index must be in memory. With elasticsearch, they use JVM's that are also in memory. And effectively, if you look at the awr report, you will see that Oracle is continuously accessing the DR$I table, there is a SQL similar to
    SELECT /*+ DYNAMIC_SAMPLING(0) INDEX(i) */    
    TOKEN_FIRST, TOKEN_LAST, TOKEN_COUNT, ROWID    
    FROM DR$idxname$I
    WHERE TOKEN_TEXT = :word AND TOKEN_TYPE = :wtype    
    ORDER BY TOKEN_TEXT,  TOKEN_TYPE,  TOKEN_FIRST
    which is continuously done.
    I think that the algorithm used by Oracle to keep blocks in cache is too complex. A just realized that in 12.1.0.2 (was released last week) there is finally a "killer" functionality, the in-memory parameters, with which you can pin tables or columns in memory with compression, etc. this looks ideal for the text index, I hope that R. Ford will finally update his white paper :-)
    But my other problem was that the optimize_index in REBUILD mode caused the DR$I table to double in size : it seems crazy that this was closed as not a bug but it was and I can't do anything about it. It is a bug in my opinion, because the create index command and "alter index rebuild" command both result in a much smaller index, so why would the guys that developped the optimize function (is it another team, using another algorithm ?) make the index two times bigger ?
    And for that the track I have been following is to put the index in a 16K tablespace : in this case the space used by the index remains more or less flat (increases but much more reasonably). The difficulty here is to pin the index in memory because the trick of R. Ford was not working anymore.
    What worked:
    first set the keep_pool to zero and set the db_16k_cache_size to instead. Then change the storage preference to make sure that everything you want to cache (mostly the DR$I) table come in the tablespace with the non-standard block size of 16k.
    Then comes the tricky part : the pre-loading of the data in the buffer cache. The problem is that with Oracle 12c, Oracle will use direct_path_read for FTS which basically means that it bypasses the cache and read directory from file to the PGA !!! There is an event to avoid that, I was lucky to find it on a blog (I can't remember which, sorry for the credit).
    I ended-up doing that. the events to 10949 is to avoid the direct path reads issue.
    alter session set events '10949 trace name context forever, level 1';
    alter table DR#idxname0001$I cache;
    alter table DR#idxname0002$I cache;
    alter table DR#idxname0003$I cache;
    SELECT /*+ FULL(ITAB) CACHE(ITAB) */ SUM(TOKEN_COUNT),  SUM(LENGTH(TOKEN_INFO)) FROM DR#idxname0001$I;
    SELECT /*+ FULL(ITAB) CACHE(ITAB) */ SUM(TOKEN_COUNT),  SUM(LENGTH(TOKEN_INFO)) FROM DR#idxname0002$I;
    SELECT /*+ FULL(ITAB) CACHE(ITAB) */ SUM(TOKEN_COUNT),  SUM(LENGTH(TOKEN_INFO)) FROM DR#idxname0003$I;
    SELECT /*+ INDEX(ITAB) CACHE(ITAB) */  SUM(LENGTH(TOKEN_TEXT)) FROM DR#idxname0001$I ITAB;
    SELECT /*+ INDEX(ITAB) CACHE(ITAB) */  SUM(LENGTH(TOKEN_TEXT)) FROM DR#idxname0002$I ITAB;
    SELECT /*+ INDEX(ITAB) CACHE(ITAB) */  SUM(LENGTH(TOKEN_TEXT)) FROM DR#idxname0003$I ITAB;
    It worked. With a big relief I expected to take some time out, but there was a last surprise. The command
    exec ctx_ddl.optimize_index(idx_name=>'idxname',part_name=>'partname',optlevel=>'REBUILD');
    gqve the following
    ERROR at line 1:
    ORA-20000: Oracle Text error:
    DRG-50857: oracle error in drftoptrebxch
    ORA-14097: column type or size mismatch in ALTER TABLE EXCHANGE PARTITION
    ORA-06512: at "CTXSYS.DRUE", line 160
    ORA-06512: at "CTXSYS.CTX_DDL", line 1141
    ORA-06512: at line 1
    Which is very much exactly described in a metalink note 1645634.1 but in the case of a non-partitioned index. The work-around given seemed very logical but it did not work in the case of a partitioned index. After experimenting, I found out that the bug occurs when the partitioned index is created with  dbms_pclxutil.build_part_index procedure (this enables  enables intra-partition parallelism in the index creation process). This is a very annoying and stupid bug, maybe there is a work-around, but did not find it on metalink
    Other points of attention with the text index creation (stuff that surprised me at first !) ;
    - if you use the dbms_pclxutil package, then the ctx_output logging does not work, because the index is created immediately and then populated in the background via dbms_jobs.
    - this in combination with the fact that if you are on a RAC, you won't see any activity on the box can be very frightening : this is because oracle can choose to start the workers on the other node.
    I understand much better how the text indexing works, I think it is a great technology which can scale via partitioning. But like always the design of the application is crucial, most of our problems come from the fact that we did not choose the right sectioning (we choosed PATH_SECTION_GROUP while XML_SECTION_GROUP is so much better IMO). Maybe later I can convince the dev to change the sectionining, especially because SDATA and MDATA section are not supported with PATCH_SECTION_GROUP (although it seems to work, even though we had one occurence of a bad result linked to the existence of SDATA in the index definition). Also the whole problematic of mixed structured/unstructured searches is completly tackled if one use XML_SECTION_GROUP with MDATA/SDATA (but of course the app was written for Oracle 10...)
    Regards, Pierre

  • How to configure printing with apex 3.1.2

    I am trying to use Apache FOP with Apex 3.1.2 and I am unable to find the place to configure Apex.
    The document I am using is located at [http://www.oracle.com/technology/products/database/application_express/html/configure_printing.html] and the important paragraph is the following:
    Step 2: Configure Oracle Application Express to use the JSP for PDF printing
    Once you have the FOP installed, access the Report Printing parameters:
    1. Access the Administration Services home page
    2. Select Manage Service
    3. Select Instance Settings, under Manage Environment Settings
    4. Click Report Printing to focus on just the Report Printing attributes
    I am trying to locate those settings. In the page with the breadcrumb "Home&gt;Administration&gt;Manage Services" the is no "Manage Environment Settings".
    Am I looking in the wrong place? Is there a special user that should be used, like sys?
    The installation is an Oracle XE with the Apex upgraded to 3.1.2

    You need to be logged in to the 'internal' workspace .
    Varad

  • Create PDF report with APEX and Oracle 11g doesn't work

    Hi everyone,
    I have a problem with the downloading of PDF reports from APEX with Oracle 11g.
    When I try to download a PDF, Acrobat Reader says it can not open the file.
    I have done the same test in an environment with APEX and Oracle 10g and it works perfectly.
    Does anyone know if there is a known bug for version 11g.
    Thank you very much.

    Hi Munky,
    I open the generated file the Notepad++ I can read the next message:
    *<HTML><HEAD><TITLE>500 Internal Server Error</TITLE></HEAD><BODY><H1>500 Internal Server Error</H1>OracleJSP:*
    An error occurred. Consult your application/system administrator for support. Programmers should consider setting the init-param <code>debug_mode</code> to "true" to see the complete exception message.</BODY></HTML>
    I have not idea can I solve the problem.
    Have you got any solution for this problem??
    Thank you so much.
    Victor Muñoz.

  • Apex 4.2.2 PDF Printing with Apex 2.0 Listener

    We recently installed Apex 4.2 with the Apex 2.0 Listener and can successfully print interactive reports and classic reports to PDF.  I viewed Mark Sewtz PDF Printing with Apex 4.2.2 and saw how he is using third party tools to format reports.  We have also looked into the Jasper Report Integration Toolkit, but have only got it working on the Tomcat environment, not WebLogic.
    I'm trying to download a classic report in PDF format with our logo displayed at the header.  In the print attributes section, there is a section for header.  I've tried adding the following in the header section:
    <img src = "http://hr.unm.edu/common/images/unm_dept_logo.gif">
    No Logo Prints
    #APP_IMAGES#unm_dept_logo.gif
    Prints in header:
    wwv_flow_file_mgr.get_file?
    p_security_group_id=3930016164431413%26p_flow_id=106%26p_fname=unm_dept_logo.gif
    #WORKSPACE_IMAGES#unm_dept_logo.gif
    Prints in header: /i/unm_dept_logo.gif
    I've also added the logo in the report region, prior to the columns printing, but no logo downloads to PDF.
    Does the Apex Listener only render text?  Is there any way to get the logo to print in the header without using a third party tool?  Any suggestions are greatly appreciated.  Thanks!

    Hi,
    There are different options to include images in your PDF exports. What's important to understand though is that with the PDF export functionality we separate the formatting from the actual data. So the formatting is defined in your RTF or XSL-FO templates and the data is stored in the XML that APEX generates based on your report data. We have several formatting options exposed on the print attributes pages, i.e. you can define page formatting, dimensions, fonts, colors, etc - all of these are applied to what we call generic XSL-FO templates. Those templates are generic in that they can be used with different reports, having variable numbers of columns and variable column names. Those formatting attributes can not be used however with named column templates, such as those that you generate with BI Publisher or those third-party tools I talked about in my Blog.
    So if you want to use these formatting options, you need a generic report layout - which you get out of the box using the built-in layout. But you also have the option to create your own generic report layout (see Shared Components -> Report Layouts). When creating a custom generic report layout, you'll get a copy of the built-in layout as a starting point. Once created, you can manually modify this layout to meet your needs. As you edit this template, you'll find a number of #....# substitution strings. This is what APEX uses at runtime to fill in your formatting values as well as to assemble your generic layout based on your result set.
    Now one way to include your own image would be to add an image reference to this generic report layout. You can't use the page header or footer attributes on the print attributes page for that because the FOP rendering engine does not understand or translate HTML. It renders XSL-FO. So to add your own image reference, you need to use XSL-FO mark-up. If you want to add an image to your page header, look for the #PAGE_HEADER# substitution string in the "Page Template" attribute of your generic report layout. You should be able to find the following:
    <fo:inline xsl:use-attribute-sets="page-header">
        #PAGE_HEADER#
    </fo:inline>
    Now assuming you have a file stored in your local images directory on localhost, you could add the following external graphic reference:
    <fo:inline xsl:use-attribute-sets="page-header">
        <fo:external-graphic src="http://localhost:8080/i/cloud.gif" content-height="scale-to-fit" height="30px"  content-width="150px" scaling="non-uniform"/>
        #PAGE_HEADER#
    </fo:inline>
    Once you're done with your chanages, save the report layout and edit your report. Go to the print attributes and select your generic report layout and then run your report page and export the PDF. Provided the APEX Listener is able to find this external image reference, it will now be included above your report in your PDF document.
    Regards,
    Marc

Maybe you are looking for