Servlet/jsp/jdbc best approach

Hello guys
Which is the best approach when developing servlet/jsp/jdbc? I will take an
example:
I have index-page, page2 and page 3.
When the user writes www.mydomain.com then the page index.jsp checks if the
user is coming from the servlet, like this:
<%
if(request.getAttribute("getPageTitle")==null){
%>
<jsp:forward page="/Index" />
<%
else{
%>
<%@ include file="/include/header.jsp" %>
content for index.jsp
<%@ include file="/include/footer.jsp" %>
<%
%>
On the other hand, the Index class has this init()
public void init(ServletConfig config) throws ServletException {
super.init(config);
con = DatabaseConf.getConnection();
DatabaseConf is a class that handles all the operations related to the
database.
Index.class has also the doGet-method like this:
request.setAttribute ("getPageTitle", "AnyTilte");
getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").forward(request,
response);
Does it looks ok so long?
Now, I have other pages, page2 and page3 (in fact I have mych more than just
these, but this is only an example)
pages.jsp works as index.jsp. It makes a check
<%
if(request.getAttribute("getPageTitle")==null){
%>
if not satisfied than it redirect to
<jsp:forward page="/Page2" />
My concern, however, is about databasemanagement. Even the Page.class has an
init-method that looks exactly like the one in Index.class, e.g.
public void init(ServletConfig config) throws ServletException {
super.init(config);
con = DatabaseConf.getConnection();
In conclusion, Im starting jdbc-connection for every class-file that
initiates. Is this a good approach? What I would like is a solution to
initiate the database only one time, when the server starts. Not everytime,
the first time a specially class-file will be called. I know, this will
happens only one time for a file for the server's lifetime. But Im afraid
this is not a good way to work.
Regards
email2us

Hello guys
Which is the best approach when developing
servlet/jsp/jdbc? I will take an
example:
I have index-page, page2 and page 3.
When the user writes www.mydomain.com then the page
index.jsp checks if the
user is coming from the servlet, like this:
<%
if(request.getAttribute("getPageTitle")==null){
%>
<jsp:forward page="/Index" />
<%
else{
%>
<%@ include file="/include/header.jsp" %>
content for index.jsp
<%@ include file="/include/footer.jsp" %>
<%
%>
On the other hand, the Index class has this init()
public void init(ServletConfig config) throws
ServletException {
super.init(config);
con = DatabaseConf.getConnection();
DatabaseConf is a class that handles all the
operations related to the
database.
Index.class has also the doGet-method like this:
request.setAttribute ("getPageTitle", "AnyTilte");
getServletConfig().getServletContext().getRequestDispa
tcher("/index.jsp").forward(request,
response);
Does it looks ok so long?
Now, I have other pages, page2 and page3 (in fact I
have mych more than just
these, but this is only an example)
pages.jsp works as index.jsp. It makes a check
<%
if(request.getAttribute("getPageTitle")==null){
%>
if not satisfied than it redirect to
<jsp:forward page="/Page2" />
My concern, however, is about databasemanagement.
Even the Page.class has an
init-method that looks exactly like the one in
Index.class, e.g.
public void init(ServletConfig config) throws
ServletException {
super.init(config);
con = DatabaseConf.getConnection();
Please use the code formatting tags when posting actual code.
In conclusion, Im starting jdbc-connection for every
class-file that
initiates. Is this a good approach? You normally do not want your Servlet to initiate (which I take to mean 'startup') a database. The two can run independently. The place to initiate a database is in your operating system's startup scripts.
What I would like
is a solution to
initiate the database only one time, when the server
starts. Not everytime,
the first time a specially class-file will be called.If you are talking about java.sql.Connection, you generally do not want to have a single connection for your entire application. Each thread should use its own connection, or transaction management/logical unit of work will be problematic, at best. You can use a connection pool to improve performance. However, from a caller's perspective, they are receiving a new connection each time.
I know, this will
happens only one time for a file for the server's
lifetime. But Im afraid
this is not a good way to work.
Regards
email2us- Saish

Similar Messages

  • Newbie: Java/JDBC best approach

    Hello, i am having trouble understanding the best approach to develop java/jdbc programs.
    I was told that the i could best load resultset data in to value objects loaded into a vector
    and handled by data access objects instead of using the resultset directly.
    This method should give me more flexibility when navigating, inserting, updating and
    deleting rows.
    An example is given by Matthew Robinson and Pavel Vorobiev in their book
    (http://manning.spindoczine.com/sbe/).
    So i am desperately seeking for sample code or documentation on this matter.
    Matthew Robinson and Pavel Vorobiev do not give a full solution containing r/w/u
    functionality.
    When seeking on the web i find only references to J2EE and this would be
    overkill for the applications i have in mind at this moment.
    I am afraid i will re-invent the wheel and end up with a square one.
    Therefore in short my questions:
    1. Should i use and manipulate the (scrollable, updatable) resultset or use
    value objects handled by data access objects.
    2. Where can i find sample code or documentation on this matter (not J2EE).
    I would be very gratefull if someone could help me,
    Rob

    Hi,
    Contact me at [email protected] I will be able to help you... and provide some sample code.
    regards,
    Nish

  • Servlets and JDBC - Best Way to Create Connections?

    Hi,
    I have a very simple servlet that executes a query and returns the result for a true/false test.
    The connection is created when the servlet is initialized:
    public void init(ServletConfig config) throws ServletException {
    dbConnection(); //Creates datasource and connection objects
    super.init(config);
    The connection object is used in the doGet() method. This works fine except after periods of extended inactivity (24 - 48 hours) when the connection is dropped for some reason (network related I believe).
    My question is, can I (should I) create and close the connection in the doGet() method? Or am I asking for trouble if I get a large number of concurrent requests?
    If I shouldn't create and close the connection in the doGet() method, how can I ensure a connection is available when the doGet() method is called?
    Thanks in advance for any suggestions.
    Jim

    you write a class something like this :
    class myLogic {
    private static DataSource ds ;
    static {
    if(ds==null)
         ds = Look up from the context root (jdbc/dsMy);
    public boolean checkExists() throws Exception{
    Connection con = ds.getConnection();
         // put your logic here
    con.close();
    And you call that class from the doGet() of servlet

  • Best approach for IDOC - JDBC scenario

    Hi,
    In my scenarion I am creating sales order(ORDERS04) in R/3 system and which need to be replicated in a SQL Server system. I am sending the order to XI as an IDoc and want to use JDBC for sending data to SQL Server. I need to insert data in two tables(header & details). Is it possible without BPM?  Or what is the best approach for this?
    Thanks,
    Sri.

    Yes, this is possible without the BPM.
    Just create the Corresponding Datatype for the insertion.
    if the records to be inserted are different, then there wil be 2 different datatypes ( one for header and one for detail).
    Do a mutlimapping, where your Source is mapped into the header and details datatype and then send using the JDBC sender adapter.
    For the strucutre of your Datatype for insertion , just check this link,
    http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm
    To access any Database from XI, you will have to install the corresponding Driver on your XI server.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3867a582-0401-0010-6cbf-9644e49f1a10
    Regards,
    Bhavesh

  • Best approach with jsp

    hi,
    i have a scenario that's sending data from jsp.
    i have two options, soap and client java proxy.
    what is best approach for this?,  becasue jsp is calling java which contains coding to call webservice,  so this is similar with client java proxy.
    if you are me,  what is the best?  soap or cleint java proxy?  eventually, soap also proxy.
    please guide me what is big point?  i do not want to get you with basically different point that i know that client java proxy is ejb. soap is wsdl...
    thanks & regards;
    ogawa
    null

    Hi,
    As you already have a J2EE application ( a JSP ), i would suggest that you use Java Proxies for the same to integrate with XI. Proxies allow you to have a better perfromance and so, I would suggest to go with Java Proxies.
    For Java proxies this how to guide would help,
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/7d4db211-0d01-0010-1e8e-9b07fc2113ab
    Regards
    Bhavesh

  • Best IDE for developing Applets,Servlets,JSP

    Hi,
    I'm looking for a little bit of advise. I have been developing prototypes using Apache Tomcat. Now I need to go into a full development phase, and I need an IDE to help speedup my work, especially when it comes to debugging applets and servlets. So the following are my questions:
    1. What is the best IDE to use in conjunction with Apache Tomcat? Does JBuilder, for example, fit this bill?
    2. Outside of Apache, I believe there is for example IBM's Websphere, which includes an IDE and a Servlet/JSP container. Which is the best of these packages?
    Thank you for your help.
    Miguel

    Check out NetBeans 3.5 at www.netbeans.org

  • Javax.servlet.jsp.JspException: java.lang.NullPointerException

    hi,
    I try to view my presentation in jsp page.I use oracle jdeveloper 9.2.0.4 and bibeans 9.2.0.4 and once 1 month ago I did this taks (I view a presentation from bibdemo in jsp file)
    now I try to view my own presentation in jsp but I recieve error message in my own schema and bibdemo schema!!
    when I use windows xp I recieve following error :
    500 Internal Server Error
    javax.servlet.jsp.JspException: BIB-10310 An unknown exception occurred.
    BIB-10101 Handler failed to handle UserObject.
    BIB-14067 Persistable object threw exception during lookup on method setXMLAsString; component class oracle.dss.dataSource.client.QueryClient; exception oracle.dss.util.persistence.BIPersistenceException.
    BIB-9509 Oracle OLAP did not create cursor.
    oracle.olapi.data.source.UnmatchedInputsException
    BIB-9509 Oracle OLAP did not create cursor.
    oracle.olapi.data.source.UnmatchedInputsException
    oracle.olapi.data.source.UnmatchedInputsException
         at oracle.dss.addins.jspTags.PresentationTag.doStartTag(PresentationTag.java:194)
         at test.jspService(test.jsp:6)
         [test.jsp]
         at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:139)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:349)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:778)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
         at java.lang.Thread.run(Thread.java:534)
    and when I use windows NT I recieve following error :
    500 Internal Server Error
    javax.servlet.jsp.JspException: java.lang.NullPointerException
         at oracle.dss.addins.jspTags.RenderTag.doEndTag(RenderTag.java:212)
         at kafa_report__7._jspService(kafa_report_7.jsp:18)
         [kafa_report_7.jsp]
         at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:139)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:349)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:509)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:413)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:778)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
         at com.evermind[Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
         at java.lang.Thread.run(Thread.java:534)
    I
    what the problem is ????????
    thanks in advance,

    hi,
    here the result :
    <?xml version="1.0" encoding="UTF-8" ?>
    - <BICheckConfig version="1.0.2.0">
    <Check key="JDEV_ORACLE_HOME" value="d:\jdev904" />
    <Check key="JAVA_HOME" value="C:\j2sdk1.4.2_01" />
    <Check key="JDeveloper version" value="9.0.4.0.1419" />
    <Check key="BI Beans release description" value="BI Beans 9.0.4 Production Release" />
    <Check key="BI Beans component number" value="9.0.4.23.0" />
    <Check key="BI Beans internal version" value="2.7.5.32" />
    <Check key="host" value="200.20.20.11" />
    <Check key="port" value="1521" />
    <Check key="sid" value="ora10g" />
    <Check key="user" value="dw_targetschema" />
    <Check key="Connecting to the database" value="Successful" />
    <Check key="JDBC driver version" value="9.2.0.4.0" />
    <Check key="JDBC JAR file location" value="D:\jdev904\jdev\lib\patches" />
    <Check key="Database version" value="10.1.0.2.0" />
    <Check key="OLAP Catalog version" value="10.1.0.2.0" />
    <Check key="OLAP AW Engine version" value="10.1.0.2.0" />
    <Check key="OLAP API Server version" value="10.1.0.2.0" />
    <Check key="BI Beans Catalog version" value="N/A; not installed in dw_targetschema" />
    <Check key="OLAP API JAR file version" value="9.2" />
    <Check key="OLAP API JAR file location" value="d:\jdev904\jdev\lib\ext" />
    <Check key="OLAP API Metadata Load" value="Successful" />
    <Check key="Number of metadata folders" value="2" />
    <Check key="Number of metadata measures" value="1" />
    <Check key="Number of metadata dimensions" value="3" />
    - <Check key="OLAP API Metadata">
    - <![CDATA[
    ==============================================================================
    Type      Name (S=Schema, C=Cube, M=Measure, D=Dimension)         Status   
    ========= ======================================================= ============
    Folder... ROOT
    Folder...   KAFA_COLLECTION
    Folder...   KAFA_COLLECTION2
    Measure..      SALARY                                             Unsuccessful
                   S=DW_TARGETSCHEMA, C=EMPLOYEMENT_CUBE, M=SALARY
                   Connection lost. Reconnect                         Successful
    Dimension      DEP_DIM                                            Successful
                   S=DW_TARGETSCHEMA, D=DEP_DIM
    Dimension      EMP_DIM                                            Successful
                   S=DW_TARGETSCHEMA, D=EMP_DIM
    Dimension      JOB_DIM                                            Successful
                   S=DW_TARGETSCHEMA, D=JOB_DIM
      ]]>
    </Check>
    - <Check key="StackTrace">
    - <![CDATA[
    ============================================================================
    Queries on the following measures or dimensions failed
    (S=Schema, C=Cube, M=Measure, D=Dimension)
    "SALARY" measure query with S=DW_TARGETSCHEMA, C=EMPLOYEMENT_CUBE, M=SALARY
    ============================================================================
    Exception stacktrace for "SALARY" measure query with S=DW_TARGETSCHEMA, C=EMPLOYEMENT_CUBE, M=SALARY
    ============================================================================
    1) BIB-9009 Oracle OLAP could not create cursor.
    oracle.express.idl.util.OlapiException: No more data to read from socket
    2) BIB-9009 Oracle OLAP could not create cursor.
    oracle.express.idl.util.OlapiException: No more data to read from socket
    1) BIB-9009 Oracle OLAP could not create cursor.
    oracle.express.idl.util.OlapiException: No more data to read from socket
    ============================================================================
    oracle.dss.dataSource.common.QueryRuntimeException: BIB-9009 Oracle OLAP could not create cursor.
    oracle.express.idl.util.OlapiException: No more data to read from socket
    java.lang.CloneNotSupportedException: BIB-9009 Oracle OLAP could not create cursor.
    oracle.express.idl.util.OlapiException: No more data to read from socket
         at oracle.dss.dataSource.common.Query.addQueryListener(Query.java:480)
         at BICheckConfig.runDefaultMeasureQuery(BICheckConfig.java:480)
         at BICheckConfig.printFolder(BICheckConfig.java:405)
         at BICheckConfig.printFolder(BICheckConfig.java:464)
         at BICheckConfig.checkConnection(BICheckConfig.java:350)
         at BICheckConfig.main(BICheckConfig.java:1348)
    2) BIB-9009 Oracle OLAP could not create cursor.
    oracle.express.idl.util.OlapiException: No more data to read from socket
    ============================================================================
    java.lang.CloneNotSupportedException: BIB-9009 Oracle OLAP could not create cursor.
    oracle.express.idl.util.OlapiException: No more data to read from socket
         at oracle.dss.dataSource.common.CubeCursor.clone(CubeCursor.java:387)
         at oracle.dss.dataSource.common.Query.addNewCubeCursorCopy(Query.java:2366)
         at oracle.dss.dataSource.common.Query.addQueryListener(Query.java:477)
         at BICheckConfig.runDefaultMeasureQuery(BICheckConfig.java:480)
         at BICheckConfig.printFolder(BICheckConfig.java:405)
         at BICheckConfig.printFolder(BICheckConfig.java:464)
         at BICheckConfig.checkConnection(BICheckConfig.java:350)
         at BICheckConfig.main(BICheckConfig.java:1348)
      ]]>
    </Check>
    </BICheckConfig>
    when I was transfering the collection from warehouse builder to database I recieve some error messages.
    but when I try to connect to database from bibeans every thing was ok so I thougth maybe it is because of that.
    and that about bibdemo why it doesn't work???
    it works before and I check it with bi_checkconfig
    thanks ,
    shima

  • Javax.servlet.jsp.JspException: Cannot find FacesContext

    Hello All,
    I was trying to create a simple JSF page (Welcome.jspx )(please find code bellow) .But it is always giving the following error:
    javax.servlet.jsp.JspException: Cannot find FacesContext
    The error appears though i am calling the page with the faces servlet (http://128.128.5.64:8989/GradeEntry/faces/Infrastructure/Welcome.jspx)!!
    I have searched all possible forums on the Internet and tried their suggestions with no luck...My web.xml configuration contains the right Faces Servlet Mapping :
    <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    Bear in mind that i can run from the project pages that are generated from Oracle Jheadstart...But i just can't run this welcome page that i've created with JDeveloper.
    Please find bellow the code for Welcome.jspx:
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:af="http://xmlns.oracle.com/adf/faces"
    xmlns:afh="http://xmlns.oracle.com/adf/faces/html"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:fmt="http://java.sun.com/jsp/jstl/fmt">
    <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
    doctype-system="http://www.w3.org/TR/html4/loose.dtd"
    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
    <jsp:directive.page contentType="text/html;charset=windows-1252"/>
    <f:view>
    <html>
    <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252"/>
    <title>tt</title>
    </head>
    <body><h:form></h:form></body>
    </html>
    </f:view>
    </jsp:root>
    You help is very appreciated!!

    Hi,
    actually this mapping only identifies those requests to be handled by teh JSF servlet. Its not a redirect.
    I see several namespace definitions in your page, but no taglib reference. Wondering how this is supposed to work
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces/html" prefix="afh"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
    I assume the next crash you will see is when you add JSF components to
    <f:view>
    <html>
    <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252"/>
    <title>tt</title>
    </head>
    <body><h:form></h:form></body>
    </html>
    </f:view>
    Note that mixing HTML elements with JSF is not a recommended approach
    Frank

  • How to solve javax.servlet.jsp.JspException: duplicate Id for a component?

    Dear everyone,
    I have built some customized JSF components. In the taglib, there is attribute "id" for my components. There is no problem when the page is run, but when I click submit button, there are errors.
    javax.servlet.jsp.JspException: duplicate Id for a component form1:dojoComboBox1     at com.sun.faces.taglib.jsf_core.ViewTag.doAfterBody(ViewTag.java:191)     at _andychun._jspService(_andychun.java:190)     [andychun.jsp]     at com.orionserver[Oracle Containers for J2EE 10g (10.1.3.1.1) ].http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)     at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462)     at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:598)     at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:522)
    Please kindly help solve this problem. Thank you.
    Best Regards,
    David

    Alex,
    my guess is that because you copied content from the
    first page to the next, you created JSF components
    with the same ID. JSF components must have unique IDs
    though.
    FrankHello Frank,
    Thanks for your reply. The thing is in the first page I do not have much id's specified/defined. And in the second page what I did was to take out all id's to see if it was conflicting. When I tried it again I still got the error. So the id's are being generated automatically if seems.
    Also is it that JSF components should have unique id's for a particular page or all pages in the JSF application?
    Any other sugguestions. I hope you understand what I am saying. If you have any questions or uncertainties fell free to ask me.
    Thanks,
    Alex.

  • Javax.servlet.jsp.JspException: Can't insert page '/common/MenuFiles.jsp' :

    Hi,
    I am using WebLogic 11g.
    In my application am getting following exception in my console
    ####<Jun 4, 2012 2:03:47 AM CDT> <Error> <HTTP> <cuscmas1.hillscte.com> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1338793427049> <BEA-101017> <[ServletContext@2141448872[app:amsatms module:/paws path:/paws spec-version:null]] Root cause of ServletException.
    javax.servlet.jsp.JspException: Can't insert page '/common/MenuFiles.jsp' : Connection reset
    at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.processException(InsertTag.java:956)
    at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:884)
    at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:473)
    at jsp_servlet._tdms._common.__tdmspage._jsp__tag1(__tdmspage.java:530)
    at jsp_servlet._tdms._common.__tdmspage._jspService(__tdmspage.java:427)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    Previously I was used OC4J, in that I didnt get any error.
    My MenuFiles.jsp is
    <%@ page import="com.hillspet.atms.common.constants.IATMSConstants" %>
    <%@ page import="com.hillspet.atms.common.constants.AnimalConstants" %>
    <%@ page import="com.hillspet.atms.common.constants.IATMSAccessConstants" %>
    <%@ page import="com.hillspet.atms.collectionkit.util.ICollectionKitConstants" %>
    <%@ page import="com.cte.common.IConstants" %>
    <%@ page import="com.cte.common.dto.UserDTO,com.hillspet.atms.common.util.ATMSUtil" %>
    <%@ page import="java.util.ArrayList" %>
    <%@page import="com.hillspet.ahms.animal.util.IAHMSAccessConstants,com.hillspet.admin.common.util.HillspetUtil, com.hillspet.ahms.animal.dto.AnimalBaseDTO"%>
    <%@page import="com.hillspet.ahms.animal.util.IAHMSAccessConstants,com.hillspet.admin.common.util.HillspetUtil, com.hillspet.ahms.animal.dto.AnimalBaseDTO"%>
    <%@ page import="com.cte.common.dto.UserDTO, com.cte.common.IConstants,     com.hillspet.admin.common.util.HillspetUtil, java.util.ArrayList, com.cte.common.ums.dto.RoleListEntryDTO,java.util.Arrays,java.util.Collections"%>
    <%@page import="com.hillspet.tdms.common.util.ITLMSAccessConstants,com.hillspet.admin.common.util.HillspetUtil"%>
    <%
    boolean isInternal = false;
    if(session.getAttribute("ANIMAL_BASE_DTO")!=null ){
         AnimalBaseDTO animalSummaryDetailsDTO = (AnimalBaseDTO) session.getAttribute("ANIMAL_BASE_DTO");
         if(animalSummaryDetailsDTO.getIsExternal()==0){
              isInternal = true;
    %>
    <%
    UserDTO dto = (UserDTO) session.getAttribute(IConstants.USER_OBJECT);
         ArrayList userPermissionsList = dto.getUserPermissionList();
    boolean isAdmin = dto.getRoleList().contains("" + IATMSConstants.ATMS_ADMIN_ROLE_ID);
    //System.out.println("User Permission list is :" + dto.getUserPermissionList());
         java.util.ArrayList rolesList = dto.getRoleList();
         boolean isEUUser = HillspetUtil.checkEUAccess(request, dto);
         ArrayList atmsRolesList=new ArrayList(Arrays.asList ("126","125","109","108","107","106","105","114","103","102","101","100","99","98","97","96","95","93","90","89","88","87","86","67","111","85","83","73","84","116","113", "127","128","130","132","133","134","135","136"));
    boolean displayATMSMenus = !Collections.disjoint(rolesList, atmsRolesList);
    %>
    <script>
         var breadcrumb = "<%=IATMSConstants.SEARCH_AND_VIEW%>";
    Initialize and render the MenuBar when its elements are ready
    to be scripted.
    YAHOO.util.Event.onContentReady("vmenu", function () {
    Instantiate a MenuBar: The first argument passed to the
    constructor is the id of the element in the page
    representing the MenuBar; the second is an object literal
    of configuration properties.
    var oMenuBar = new YAHOO.widget.MenuBar("vmenu", {
    autosubmenudisplay: true,
    hidedelay: 750,
    lazyload: true });
    Define an array of object literals, each containing
    the data necessary to create a submenu.
    var aSubmenuData = [
                        <%
                                  if(rolesList.contains("67") || rolesList.contains("84") || rolesList.contains("118") || rolesList.contains("111") || rolesList.contains("90") || rolesList.contains("83") || rolesList.contains("85") || rolesList.contains("88") || rolesList.contains("82") || displayATMSMenus){
                        %>
    id: "Tab1",
    itemdata: [
    <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.CREATE_ANIMNAL_PERMISSION)) {%>
    { text: "Add Animal", url: "addAnimalGeneralInfoAction.do" },
                                            <%}%>
                                                      <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.CREATE_ANIMNAL_PERMISSION)) {%>
    { text: "Record Manual Feeding", url: "saveChangeDietAction.do?command=view",disabled:true },
                                                 <%}%>
                                                 <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.SEARCH_ANIMNAL_PERMISSION)) {%>
                                       { text: "Search Animals", url: "animalSearchAction.do?command=view" },
                                            <%}%>
                                       <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.SEARCH_IMAGES)) {%>
                                       { text: "Search Images",url: "animalImageSearchAction.do?command=view" },
                                       <%}%>
                                       <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.SEARCH_IMAGES)) {%>
                                       { text: "Capture Images",url: "captureImageAction.do?command=view" },
                                       <%}
                                       if(!rolesList.contains("95") && !rolesList.contains("98")){ %>
                                            { text: "Animal Panels", url: "animalpanelList.do?command=view&searchFlag=fromMenu" },
    <% }
                                            if (dto.getUserPermissionList().contains(
    AnimalConstants.AR_RECOMMEND_ANIMALS_PERMISSION)|| dto.getUserPermissionList().contains(
    AnimalConstants.AR_VIEW_LIST_OF_RECOMMENDATION_PERMISSION)) {
    %>
                   { text: "Animal Recommendation",
    submenu: {
    id: "subtab11",
    itemdata: [
    <%
    if (dto.getUserPermissionList().contains(AnimalConstants.AR_RECOMMEND_ANIMALS_PERMISSION)) {
    %>
    { text: "Recommend Animals", url: "recommendedAnimal.do?command=view" },
    //{ text: "Reserve / Un-reserve", url: "../ATMS/reserveUnreserve.html"},
    <%}%>
    <%
                                            if (dto.getUserPermissionList().contains(
    AnimalConstants.AR_RECOMMEND_ANIMALS_PERMISSION)|| dto.getUserPermissionList().contains(
    AnimalConstants.AR_VIEW_LIST_OF_RECOMMENDATION_PERMISSION)) {
    %>
    { text: "View Recommendations", url: "recommendedAnimalList.do?command=view"},
    <%}%>
                        <%} else {%>
                             { text: "Animal Recommendation", url: "#" , disabled: true},
                             <%}%>
                                       { text: "Move Animal",
                                       submenu: {
    id: "subtab15",
    itemdata: [
                                                                <% if( isInternal ){%>
    { text: "Change Location", url: "manageAnimalLocationAction.do?command=viewHistory" },
                                                                <%}%>
    <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.ANML_DISPOSITION_PERMISSION)) {%>
                                                                { text: "Adoption Record", url: "animalDispositionAction.do?command=view" },
                                                                <%}%>
    id: "Tab2",
    itemdata: [
                                       <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.SCHEDULE_FMT)) {%>
    { text: "Schedule Facility Maintenance Task ", url: "scheduleFMTActionForward.do?command=forward", disabled: false },
                                            <%}%>
                                       <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.SCHEDULE_GROUP_TASK) || rolesList.contains("99")) {%>
                                       { text: "Schedule Task", url: "groupTaskSearchAction.do?command=view" },
                                       <% } %>
                                       { text: "Daily Task List",
                                       submenu: {
    id: "subtab21",
    itemdata: [
                                                                { text: "Animal Care Task", url: "viewDailyTaskListAction.do?command=view&id=1&actSubTab=1"},
                                       <%if(userPermissionsList.contains(IATMSConstants.SMCL_VIEW_SAMPLES)){%>
                                                      <%if(userPermissionsList.contains(IATMSConstants.SMCL_VIEW_SAMPLES)){%>
                                                      { text: "Test Collections", url: "viewSMSmpleCollections.do?command=view&identifier=fromMenu" },
                                                      <% } %>
                                                      <%if(userPermissionsList.contains(IATMSConstants.SMCL_VIEW_SAMPLES)){%>
                                                      { text: "Health Collections", url: "viewBioHealthSmplCollections.do?command=view&identifier=fromMenu" },
                                                      <%}%>
                                       <%}%>
                                                           <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.DAILY_TASK_LIST_MEDICAL_TESTS)) {%>
    { text: "Medical Test", url: "viewDailyTaskListAction.do?command=view&id=2"},
    <%}%>
                                                           <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.DAILY_TASK_LIST_MEDICAL_EXAMS)) {%>
                                                                { text: "Medical Exams", url: "viewDailyTaskListAction.do?command=view&id=3"},
                                                                     <%}%>
                                                                { text: "Status Phenotype", url: "viewDailyTaskListAction.do?command=view&id=6"},
                                                                { text: "Surgery/Procedure", url: "viewDailyTaskListAction.do?command=view&id=4"},
                                                                { text: "Facility Maintenance ",submenu: {
                             id: "subtab777",itemdata: [
                                                                          { text: "Facility Maintenance Task",url: "viewDailyTaskListAction.do?command=view&id=5" },
                                                                          { text: "Search FMT Images",url: "searchFMTImageAction.do?command=view" }]
                                                                { text: "Record Group ACTs", url: "RecordWeightFecalScoreAction.do?command=view"},
                                       { text: "Administer Medication", url: "recordMedicationAdministrationAction.do?command=forward" },
                                            <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.RECORD_OBSERVATION_PERMISSION)) {%>
                                       { text: "Observations",
                                                 submenu: {
    id: "subtab222",
    itemdata: [
                                                                { text: "Search Observations",url: "recordObservationsAction.do?command=view" },
                                                                { text: "Record Observations",url: "addAnimalObservationAction.do?command=add&page=record&source=monitor" },
                                       <%}%>
                                       { text: "Shared Feed Diet Assignment", url: "RecordWeightFecalScoreAction.do?command=viewDefaultDiet" },
                                       <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.TRCL_PRINT_LABELS_LIST) || HillspetUtil.checkAccess(request,IATMSAccessConstants.HRCL_PRINT_LABELS_LIST)) {%>
                                       { text: "Print Labels",
                                       submenu: {
    id: "subtab211",
    itemdata: [
                                                                <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.TRCL_PRINT_LABELS_LIST)) {%>
                                                                { text: "Test Collections", url: "printLabelsAction.do?command=viewTests"},
                                                                <%}%>
                                                                <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.HRCL_PRINT_LABELS_LIST)) {%>
    { text: "Health Collections", url: "printLabelsAction.do?command=viewHealthCols"},
                                                                <%}%>
                                       <%}%>
                                       //{ text: "Controlled Drug Inventory", url: "#" , disabled: true},
                             <%}%>
    <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVE_SAMPLES )||
                                       HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVE_HEALTH_SAMPLES) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111") || !dto.getRoleList().contains("123") && !dto.getRoleList().contains("82") ) {%>
    id: "Tab3",
    itemdata: [
    { text: "Sample Management",
    submenu: {
    id: "subtab41",
    itemdata: [
                                       <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVE_SAMPLES )||
                                       HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVE_HEALTH_SAMPLES) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111") || !dto.getRoleList().contains("131") ) {%>
    { text: "Samples Pending Receipt",
                                            submenu: {
                                                 id: "subtabRecieve",
                                                      itemdata: [
                                                           <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVE_SAMPLES)) {%>
                                                      { text: "Biological Test Collections", url: "fetchLabLocationDetailsAction.do?command=forward" , disabled: false},
                                                      <%}%>
                                                           <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVE_HEALTH_SAMPLES) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111")) {%>
                                                      { text: "Biological Health Collections", url: "recieveTestSamplesAction.do?command=forward" , disabled: false},
                                                      <%}%>
                                                      <%if(!dto.getRoleList().contains("706")) {%>
                                                      { text: "Non Biological Collections", url: "receiveNonBiologicalSamplesAction.do?command=viewNBSamples"}
                                                      <% } %>
                                            <%}%>
    <%
    if(HillspetUtil.checkAccess(request,IATMSAccessConstants.LAB_SM_VIEW_RECEIVED_NON_BIO_SMPLS)||HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVED_HEALTH_SAMPLES) || HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVED_TEST_SAMPLES) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111")) {%>
    { text: "Samples Received",
                                            submenu: {
                                                 id: "subtabRecieved",
                                                      itemdata: [
    <%
    if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVED_TEST_SAMPLES) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111")) {%>
                                                      { text: "Biological Test Collections", url: "recievedTestSamplesAction.do?command=forward" , disabled: false},
    <%}%>
    <%
    if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVED_HEALTH_SAMPLES) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111") ) {%>
                                                      { text: "Biological Health Collections", url: "receivedBioTestSamplesAction.do?command=forward" , disabled: false},
    <%}%>
    <%
    if(HillspetUtil.checkAccess(request,IATMSAccessConstants.LAB_SM_VIEW_RECEIVED_NON_BIO_SMPLS) ) {%>
                                                      { text: "Non Biological Collections", url: "receivedNonBiologicalSamplesAction.do?command=viewNBSamples"}
    <%}%>
    <%}%>
                                  <%if(HillspetUtil.checkAccess(request,"VIEW_SAMPLE_BATCHES") || dto.getRoleList().contains("85") || dto.getRoleList().contains("111")||dto.getRoleList().contains("706")) {%>
    { text: "Sample Batches", url: "viewSampleBatches.do?command=view" , disabled: false},
                                       <%}%>
                                       <%     if (dto.getUserPermissionList().contains("OUTSIDE_LAB_SAMPLES_LIST") || dto.getRoleList().contains("131") || dto.getRoleList().contains("706")){ %>
                   { text: "External Lab Samples", url: "outsideLabSamplesAction.do?command=view" , disabled: false},
                                       <% } %>
                             <%
                                            if (dto.getUserPermissionList().contains(
    ICollectionKitConstants.GENERATE_CK_TEMPLATE) ) { %>
                             { text: "Sample Collection Kits",
    submenu: {
    id: "subtab421",
    itemdata: [
                                       <%
                                            if (dto.getUserPermissionList().contains(
    ICollectionKitConstants.GENERATE_CK_TEMPLATE)){ %>
    { text: "Generate Collection Kits", url: "ckCreateTemplateAction.do?command=goToGenerateCkKits" , disabled: false},
                                       <% } %>
                             <%
                                            if (dto.getUserPermissionList().contains(
    ICollectionKitConstants.GENERATE_CK_TEMPLATE) ){ %>
                             { text: "Search & View", url: "ckCreateTemplateAction.do?command=goToCKSearch&fromMenu=true" },
                             <%}%>
                             <%}%>
    <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SMIN_VIEW_SAMPLE_INVENTORY) ||
                                            HillspetUtil.checkAccess(request,IATMSAccessConstants.VIEW_FORMULA_INVENTORY) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111") || dto.getRoleList().contains("131")) {%>
    { text: "Sample Information",
                                            submenu: {
                                                 id: "subtabSampleInventory",
                                                      itemdata: [
                                                      <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SMIN_VIEW_SAMPLE_INVENTORY) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111")) {%>
                                                      { text: "Biological Samples", url: "sampleInventoryAction.do?command=view" , disabled: false},
                                                      <%}%>
                                                      <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.VIEW_FORMULA_INVENTORY)) {%>
                                                      { text: "Non Biological Samples", url: "viewInventory.do?command=view&fromLab=Y" , disabled: false},
                                                      <%}%>
    <% if ( HillspetUtil.checkAccess(request,"PENDING_ANALYSIS_REQUEST_LIST") ||
              HillspetUtil.checkAccess(request,"PENDING_ANALYSIS_REQUEST_READ") ) {
    %>
    { text: "Collected Samples New Request", url: "pendingAnalysisReqAction.do?command=view" , disabled: false },
    <%}%>
                                       <%}%>
    ]

    Hi,
    actually this mapping only identifies those requests to be handled by teh JSF servlet. Its not a redirect.
    I see several namespace definitions in your page, but no taglib reference. Wondering how this is supposed to work
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces/html" prefix="afh"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
    I assume the next crash you will see is when you add JSF components to
    <f:view>
    <html>
    <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252"/>
    <title>tt</title>
    </head>
    <body><h:form></h:form></body>
    </html>
    </f:view>
    Note that mixing HTML elements with JSF is not a recommended approach
    Frank

  • Best approach... TiledView or regular ViewBean

    I'm wondering what approach would be best with JATO and the display
    I'm trying to build on a JSP page. My page layout will look something
    like this...
    Checked Out Items: (none)
    ToDo Items: 3 InfoDocs
    2 Sun Alerts
    Draft Items: (none)
    My Docs: 345 InfoDocs
    28 Sun Alerts
    18 SRDB's
    Now, this might get confusing so please ask questions if anything I
    state is not clear. The values after the colons (:) (i.e. 3 InfoDocs,
    2 Sun Alerts, etc) are dynamic. These values will be genereated off of
    queries on a database. There could be more listings or there could be
    the value (none). As far as setting this up through the JATO
    framework, I'm trying to determine the best way to do this. Right now
    I have a VoyagerHome.jsp that will represent the layout displayed
    above. I also have a VoyagerHomeViewBean.java. At first I was thinking
    of registering a Tiled View in this ViewBean but then I felt it didn't
    make sense and wouldn't work out the way I wanted it to. So now I'm
    thinking of registering the labels (Checked Out Items:, ToDo Items:,
    Draft Items:, and My Docs:) as StaticTextFields within the
    VoyagerHomeViewBean.
    Then I think I would also need to make the values (3 InfoDocs, 2 Sun
    Alerts, etc) children and make them HREF jato types. But I'm not sure
    how I can do this when the numbers are going to be dynamic. Does this
    make sense? One question I have is should I or do I have to register
    each document type (InfoDoc,
    Sun Alert, SRDB, etc) for each label grouping (Checked Out Items:,
    ToDo Items:, etc). So for example, in the end, I will need place
    holders for the following:
    Checked Out Items: xxx InfoDocs
    Checked Out Items: xxx Sun Alerts
    Checked Out Items: xxx SRDBs
    Checked Out Items: xxx Cobalt Assets
    Checked Out Items: xxx iPlanet Assets
    ToDo Items: xxx InfoDocs
    ToDo Items: xxx Sun Alerts
    ToDo Items: xxx SRDBs
    ToDo Items: xxx Cobalt Assets
    ToDo Items: xxx iPlanet Assets
    same for Draft Items and My Docs....
    This may seem confusing so please ask questions. In
    other words, is there a way to re-use the HREF tags and run them
    through a tiled view or something eventhough these values for the HREF
    tags are going to be run off of different database tables?
    What I'm trying to do is kinda difficult to explain but I hope you get
    some idea of what I'm trying to accomplish.
    Thanks
    - Billy -

    Best approach i can think of is a TiledView with HREFs for InfoDocs, Sun
    Alerts etc. You can use a StaticTextField for the numbers in the
    TiledView. ToDo Items, Draft Items etc. you can just label them in your
    jsp itself, no need to register them as children.
    Senthil
    chubbykidd wrote:
    I'm wondering what approach would be best with JATO and the display
    I'm trying to build on a JSP page. My page layout will look something
    like this...
    Checked Out Items: (none)
    ToDo Items: 3 InfoDocs
    2 Sun Alerts
    Draft Items: (none)
    My Docs: 345 InfoDocs
    28 Sun Alerts
    18 SRDB's
    Now, this might get confusing so please ask questions if anything I
    state is not clear. The values after the colons (:) (i.e. 3 InfoDocs,
    2 Sun Alerts, etc) are dynamic. These values will be genereated off of
    queries on a database. There could be more listings or there could be
    the value (none). As far as setting this up through the JATO
    framework, I'm trying to determine the best way to do this. Right now
    I have a VoyagerHome.jsp that will represent the layout displayed
    above. I also have a VoyagerHomeViewBean.java. At first I was thinking
    of registering a Tiled View in this ViewBean but then I felt it didn't
    make sense and wouldn't work out the way I wanted it to. So now I'm
    thinking of registering the labels (Checked Out Items:, ToDo Items:,
    Draft Items:, and My Docs:) as StaticTextFields within the
    VoyagerHomeViewBean.
    Then I think I would also need to make the values (3 InfoDocs, 2 Sun
    Alerts, etc) children and make them HREF jato types. But I'm not sure
    how I can do this when the numbers are going to be dynamic. Does this
    make sense? One question I have is should I or do I have to register
    each document type (InfoDoc,
    Sun Alert, SRDB, etc) for each label grouping (Checked Out Items:,
    ToDo Items:, etc). So for example, in the end, I will need place
    holders for the following:
    Checked Out Items: xxx InfoDocs
    Checked Out Items: xxx Sun Alerts
    Checked Out Items: xxx SRDBs
    Checked Out Items: xxx Cobalt Assets
    Checked Out Items: xxx iPlanet Assets
    ToDo Items: xxx InfoDocs
    ToDo Items: xxx Sun Alerts
    ToDo Items: xxx SRDBs
    ToDo Items: xxx Cobalt Assets
    ToDo Items: xxx iPlanet Assets
    same for Draft Items and My Docs....
    This may seem confusing so please ask questions. In
    other words, is there a way to re-use the HREF tags and run them
    through a tiled view or something eventhough these values for the HREF
    tags are going to be run off of different database tables?
    What I'm trying to do is kinda difficult to explain but I hope you get
    some idea of what I'm trying to accomplish.
    Thanks
    - Billy -
    To download the latest version of JATO, please visit:
    http://www.sun.com/software/download/developer/5102.html
    For more information about JATO, please visit:
    http://developer.iplanet.com/tech/appserver/framework/index.jsp
    [Non-text portions of this message have been removed]

  • Best approach - using materialized views

    Hi
    We are using materialized views for structuring complex business data.
    These views get refreshed every night. However, the refresh jobs runs slow in some cases.In such scenarios, the job would still be running while client applications (JDBC) try to access data from the views. This would result in client calls to wait for a long time or to timeout. I would like to know what is the best approach in such scenarios to ensure data availability and performance?
    Thanks
    RC

    See
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14226/repmview.htm#i31171
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14226/repmview.htm#sthref491
    and
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14223/basicmv.htm#sthref521
    (which also lists the Restrictions)
    You can use a Fast Refresh if it meets the restrictions. You need to have a MATERIALIZED VIEW LOG created on the source table(s).
    Hemant K Chitale

  • Best approach to read IDOC flatfiles using XI in mass number

    Hi,
    We have a requirement like, we will be provided with IDOC PO flatfile structures(Exactly same as IDOC,but in flatfile format) .
    We have to read those flafiles and create POs in our SAP system.
    please note there is no sender system,will be provided with IDOC structured flatfiles and receiving system is SAP,so I can use IDOC adapter on the recv side.We can use file adapter with FCC ,but as file adapter cannot support multiple heirarchies,I cannot go for sender File Adapter to read those files.
    so what is the best approach to do this interface using XI?
    thank you in advance.
    ..Sri

    Hi
    You could refer the below link for reference
    If you need XI to convert IDOC XML format to IDOC Flat format, refer to:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-how-to-guides/how%20to%20convert%20between%20idoc%20and%20xml%20in%20xi%203.0.pdf
    https://websmp107.sap-ag.de/~sapdownload/011000358700001795162005E/HowToIDocXMLToFlat.pdf
    (Section 3.2 of the how to guide mentions how to "Convert a flat file representation of an IDoc to IDoc-XML" !!!)
    Converting Idoc flat file representation to XML
    Otherwise creating a flat file from the IDOC XML using the file-content conversion will be very cumbersome.
    If you need the file in the idoc structure itself, I would suggest to create the file in R/3 and poll the file from XI.
    Probably above links could give you some hitch on it
    Thanks
    Swarup
    Edited by: Swarup Sawant on Feb 12, 2008 5:47 AM

  • Best approach to pass string to table

    What is the best approach or way to pass a colon delimited string back to a table from a procedure?
    I know when using a multiselect item you can pass a string back and forth using
    HTMLDB_UTIL.STRING_TO_TABLE or
    HTMLDB_UTIL.TABLE_TO_STRING
    but I'm unsure how to pass a colon separated string from a procedure to insert into a table?
    Unfortunately using the approach below yields me an error
    PLS-00306: wrong number or types of arguments in call to 'TABLE_TO_STRING"
    create or replace PROCEDURE "123_ABC" (
    g_abc IN number,
    g_123 IN varchar2)
    AS
    r_one varchar2(15);
    r_two varchar2(17);
    t_selected HTMLDB_APPLICATION_GLOBAL.VC_ARR2;
    CURSOR 123_cur IS
    select ID, NAME
    from table
    where abc=g_abc
    and 123=g_123;
    BEGIN
    delete from TABLE_STAGE;
    COMMIT;
    t_selected := HTMLDB_UTIL.TABLE_TO_STRING(r_one);
    FOR a_rec IN 123_cur
    LOOP
    INSERT INTO table_stage
    VALUES (r_one, r_two);
    COMMIT;
    END LOOP;
    END 123_ABC;

    In my opinion, unless you embark on O/R mapping frameworks, your JDBC implementation is probably the most efficient but not neccessarly the most elegant aproach. I described an alternative approach which ships serialized Java objects by value across tiers in my book http://www.amazon.com/gp/product/1555583296/
    page 803 chapter 12.
    A second option is to publish the SQL statements (Insert, Delete, Update) as Web services (see Database Web Services in the book).
    Another option also described in the book, is to use the rowset APi (webrowset, joinrowset).
    Kuassi

  • RFC Lookup - Best Approach To Parse Returned Tables

    Hi Everyone,
    We are doing some RFC Lookups at a header node that are returning tables for all of the items (for performance reasons).  I am trying to figure out what the best way to extract the values from the table, which is most of time has more than 1 key column.  At the moment I am doing this through DOM, but I have also heard about using arrays, and have even seen an example of using a hashtables with all of the values concatenated together to later parse out using substrings.  I'm looking for the best approach to:
    1) Store this data as some kind of global object to lookup during the header
    2) Search and Parse from the global object during linte items.
    As an example, I have the following lines in my table:
    Key1,Key2,Value1,Value2,Value3
    A,A,1,2,3
    A,B,1,2,4
    A,C,3,4,2
    B,A,2,4,6
    And during line item processing I may want to find the value for Key1=A, Key2=C.
    Thanks
    Peter

    Hi Peter,
    Please take a look at these...
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-code-samples/xi%20mapping%20lookups%20rfc%20api.pdf
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    cheers,
    Prashanth
    P.S Please mark helpful answers

Maybe you are looking for

  • How can I disable data access on C1-01 ?

    I have a C1-01, for emergency use only.  Today it displayed an unsolicited "Download Failed", message, and sure enough, my paygo account had been emptied.  How can I prevent all data access, ie attempts to update firmware, internet access, etc? TIA,

  • Time capsule slow when transferring files over wifi - please help!

    Well - the problem started after the insallation of Lion. It takes around 1 min to transferre 8 mb. So if i want to see a film from the TC i need to cable it and thats not realy the point of having a wireless harddisk. I have turn spotlight off I hav

  • My iPhone 3G doesn't turn on? The worst bit is that the menu button doesn't work too well either.... Help!

    I was charging it from 1300-2300 (10 hours) since the apple logo wasn't coming up but that lightning bolt sign appeared. When I came back, my phone just has a black screen and isn't turning on. The top menu button is practically useless and I've retr

  • Deleting an array

    I'm using 3 arrays in a program but i repeat the program once becuase i have to do 2 different websites so i don't want to have to write a whole nother set of code is there anyway i can just delete the whole array and use it again ?

  • Error message passing from R/3 to CRM

    Hi All, I am working in SCM and Crm Integration Project. in R/3 Whenever Goods Issue Happend any error message happend that error message i need to pass CRM. Please help me any Idocs isthere for this. Thanks, Ram