Best practices for a multi-language application

Hi,
I'm planning to develop an application to work in two different countries and I'm hopping to get some feedback from this community on the best practices to follow when building the application. The application will run in two different languages (English and French) and in two different timezones;
My doubts:
- Wich type format is more appropriated to my table date fields?
- I will build the application on english language. Since APEX has the french language for the admin frontend, how can I install it and can I reuse the translation to my applications? The interactive reports region are somewhere translated into french, how can I access that translation and use it in my application?
Thank you

Hello Cao,
>> The application will run in two different languages (English and French) and in two different timezones …. It would be very helpful if I could access at least the translation of the IRR regions.
As you mentioned, French is one of the native supported languages by the Application Builder. As such, all the internal APEX engine messages (including those for IR) were translated to French. In order to enjoy it you need to upload the French language into your Application Builder. The following shows you how to do that:
http://download.oracle.com/docs/cd/E23903_01/doc/doc.41/e21673/otn_install.htm#BEHJICEB
In your case, the relevant directory is *…/apex/builder/fr/ *. Please pay attention to the need to set properly the NLS_LANG parameter.
>> Wich type format is more appropriated to my table date fields?
I’m not sure exactly what you mean by that. Date fields are saved in the database format free and it’s up to you to determine how to display them, usually by using the to_char() function.
As you mentioned that you are going to work with two different time zones, it’s possible that the date format for these two zones are different. In this case, you can use the APEX Globalization Application Date Time Format item. As the help for this item shows, you can use a substitution string as the item value, and you can set the value of the substitution string according to the current language and its corresponding date format.
You should also set the Automatic Time Zone field to yes. It will make your life a bit easier.
Regards,
Arie.
♦ Please remember to mark appropriate posts as correct/helpful. For the long run, it will benefit us all.
♦ Author of Oracle Application Express 3.2 – The Essentials and More

Similar Messages

  • Best practice for developing multi language Website

    Hi all
    I want to develop my website in multiple languages and I know that I can put all the msg string in the resource bundle or in the database, however, I think this makes the interface of the web becomes very difficult to develop because I can't see anything in the HTML editor. Another solution is to use XSL that I believe HTML editors is able to display the tagname or some description of the XSL tag but I am not sure about that because I haven't used it before.
    Have any expert web developers find a better solution or do you guys think XSL is the best solutions? Any suggestions are very welcome. Thank You!
    From
    Edmond

    being not familiar with xsl, I say go for resources. If you define your own tag to display text, it isnt that hard to understand, e.g.
    <translate id="hello.world"/>. That at least is how I make multi language website.

  • Best Practices for CS6 - Multi-instance (setup, deployment and LBQ)

    Hi everyone,
    We recently upgraded from CS5.5 to CS6 and migrated to a multi-instance server from a single-instance. Our current applications are .NET-based (C#, MVC) and are using SOAP to connect to the InDesign server. All in all it is working quite well.
    Now that we have CS6 (multi-instance) we are looking at migrating our applications to use the LBQ features to help balance the workload on the INDS server(s). Where can I find some best practices for code deployment/configuration, etc for a .NET-based platform to talk to InDesign?
    We will be using the LBQ to help with load management for sure.
    Thanks for any thoughts and direction you can point me to.
    ~Allen

    Please see if below metalink note guides you:-
    Symmetrical Network Acceleration with Oracle E-Business Suite Release 12 [ID 967992.1]
    Thanks,
    JD

  • Best practice for distributing/releasing J2EE applications.

    Hi All,
    We are developing a J2EE application and would like some information on the best
    practices to be followed for distributing/releasing J2EE applications, in general.
    In particular, the dilemma we have is centered around the generation of stub, skeleton
    and additional classes for the application.
    Most App. Servers can generate the required classes while deploying the EJBs in the
    application i.e. at install time. While some ( BEA Weblogic and IBM Websphere are
    two that we are aware of ) allow these classes to be generated before the installation
    time and the .ear file containing the additional classes is the one that is uploaded.
    For instance, say we have assembled the application "myapp.ear" . There are two ways
    in which the classes can be generated. The first is using 'ejbc' ( assume we are
    using BEA Weblogic ), which generates the stub, skeleton and additional classes for
    the application and returns the file, say, "Deployable_myapp.ear" containing all
    the necessary classes and files. This file is the one that is then installed. The
    other option is to install the file "myapp.ear" and let the Weblogic App. server
    itself, generate the required classes at the installation time.
    If the first way, of 'pre-generating' the stubs is followed, does it require us to
    separately generate the stubs for each versions of the App. Server that we support
    ? i.e. if we generate a deployable file having the required classes using the 'ejbc'
    of Weblogic Ver5.1, can the same file be installed on Weblogic Ver6.1 or do we
    have to generate a separate file?
    If the second method, of 'install-time-generation' of stubs is used, what is the
    nature/magnitude of the risk that we are taking in terms of the failure of the installation
    Any links to useful resources as well as comments/suggestions will be appreciated.
    TIA
    Regards,
    Aasif

    Its much easier to distribute schema/data from an older version to a newer one than the other way around. Nearly all SQL Server deployment features supports database version upgrade, and these include the "Copy Database" wizard, BACKUP/RESTORE,
    detach/attach, script generation, Microsoft Sync framework, and a few others.
    EVEN if you just want to distribute schemas, you may want to distribute the entire database, and then truncate the tables to purge data.
    Backing up and restoring your database is by far the most RELIABLE method of distributing it, but it may not be pratical in some cases because you'll need to generate a new backup every time a schema change occurs, but not if you already have an automated
    backup/maintenance routine in your environment.
    As an alternative, you can Copy Database functionality in SSMS, although it may present itself unstable in some situations, specially if you are distributing across multiple subnets and/or domains. It will also require you to purge data if/when applicable.
    Another option is to detach your database, copy its files, and then attach them in both the source and destination instances. It will generate downtime for your detached databases, so there are better methods for distribution available.
    And then there is the previously mentioned method of generating scripts for schema, and then using an INSERT statement or the import data wizard available in SSMS (which is very practical and implements a SSIS package internally that can be saved for repeated
    executions). Works fine, not as practical as the other options, but is the best way for distributing databases when their version is being downgraded.
    With all this said, there is no "best practice" for this. There are multiple features, each offering their own advantages and downfalls which allow them to align to different business requirements.

  • Best approach for a cross language application

    I am working on a project where we are planning to write the data acquisition code in LabVIEW, but the rest of the application is being written in C# by some developers that are unfamiliar with LabVIEW. I am looking for suggestions for the best architecture for this kind of application.
    Traditionally, in my LabVIEW applications that require UI, data aquisition, logging, and analysis, I generate a tiered producer consumer architecture. I usually build a queued event driven producer/consumer, and then create additional consumer loops to handle data as it propogates out of the acquisition loop. In this project, I am basically looking to only create the acquisition loop in LabVIEW, with the rest of the "loops" being generated by the C# guys using .NET 4.0 CLR.
    The original plan was to make my loop as I usually would in LabVIEW and build it as a .NET interop. I hadn't really sorted it out yet, but the plan was to basically get configure and start commands from the C# gui (not sure how to replace the queue here), and use some event to get the analysis parts of the program to trigger at appropriate times based on data availability. It's come to my attention that LabVIEW generated .NET interops can not run in 4.0 CLR applications though, so I'm looking for alternatives.
    Basically, I'd like to hear about similar applications and what has worked and not worked. I'm particularly interested in good approaches for interprocess communication between LabVIEW and a .NET app, and also any thoughts on triggering actions in the .NET app from the LabVIEW portion (can this be done without the .NET code polling something?).
    Thanks!
    Chris

    Hi Chris,
    C. Minnella wrote:I'm particularly interested in good approaches for interprocess communication between LabVIEW and a .NET app, and also any thoughts on triggering actions in the .NET app from the LabVIEW portion (can this be done without the .NET code polling something?).
    whenever it comes to communication between windows applications, I don't stop recommending the highly underrated Microsoft Message Queue (MSMQ) infrastructure and in my opinion, it actually screams to be used in your scenario:
    1. Let LabVIEW collect the data and place it into a designated data queue.
    2. Let C# exe attach to queue and do the data retrieval/evaluation/storage/whatever by OnMessageReceived events.
    3. Let C# send control messages to a second queue, that is read by LV.
    MSMQ is increadibly easy to use, yet very powerfull and has so many aspects and benefits for interprocess communication, especially between different machines in a LAN - a real pity that it's so little known. Just have a look at the following thread, especially at the tiny LabVIEW example I've placed there: http://forums.ni.com/t5/LabVIEW/MSMQ-with-Labview/m-p/154334
    This could be done better on the LabVIEW side (event based rather than polling), but as you just want to send some configuration and control commands, it's okay like this.
    Unfortunately, there are not too many good resources about MSMQ on the web that explain the coding basics well.The MSDN magazine has some great articles if you're somewhat experienced (like http://msdn.microsoft.com/en-us/magazine/cc163920.aspx ). What I found really helpful and gives a great introduction is this book: http://amzn.com/1590593464
    Give MSMQ try and have fun with it!
    Cheers,
    Hans

  • Best practice for client-server(Socket) application

    I want to build a client-server application
    1) On startup.. client creates connection to Server and keeps reading data from server
    2) Server keeps on sending different messages
    3) Based on messages(Async) from server client view has to be changed
    I tried different cases ended up facing IllegalStateChangeException while updating GUI
    So what is the best way to do this?
    Please give a working example .
    Thanks,
    Vijay
    Edited by: 844427 on Jan 12, 2012 12:15 AM
    Edited by: 844427 on Jan 12, 2012 12:16 AM

    Hi EJP,
    Thanks for the suggestion ,
    Here is sample code :
    public class Lobby implements LobbyModelsChangeListener{
        Stage stage;
        ListView<String> listView;
        ObservableList ol;
         public Lobby(Stage primaryStage) {
            stage = primaryStage;
               ProxyServer.startReadFromServer();//Connects to Socket Server
             ProxyServer.addLobbyModelChangeListener(this);//So that any data from server is fetched to Lobby
            init();
        private void init() {
              ProxyServer.getLobbyList();//Send
            ol = FXCollections.observableArrayList(
              "Loading Data..."
            ol.addListener(new ListChangeListener(){
                @Override
                public void onChanged(Change change) {
                    listView.setItems(ol);
         Group root = new Group();
        stage.setScene(new Scene(root));
         listView = new ListView<String>();
        listView.maxWidth(stage.getWidth());
         listView.setItems(ol);
         listView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
        istView.setOnMouseClicked(new EventHandler<MouseEvent>(){
                @Override
                public void handle(MouseEvent t) {
    //                ListView lv = (ListView) t.getSource();
                    new NewPage(stage);
         root.getChildren().add(listView);
         @Override
        public void updateLobby(LobbyListModel[] changes) {
    //        listView.getItems().clear();
            String[] ar = new String[changes.length];
            for(int i=0;i<changes.length;i++)
                if(changes!=null)
    System.out.println(changes[i].getName());
    ar[i] = changes[i].getName();
    ol.addAll(ar);
    ProxyServer.javaProxyServer
    //Implements runnable
    public void run()
         ......//code to read data from server
    //make array of LobbyListModel[] ltm based on data from server
         fireLobbyModelChangeEvent(ltm);
    void addLobbyModelChangeListener(LobbyModelsChangeListener aThis) {
    this.lobbyModelsChangeListener = aThis;
         private void fireLobbyModelChangeEvent(LobbyListModel[] changes) {
    LobbyModelsChangeListener listner
    = (LobbyModelsChangeListener) lobbyModelsChangeListener;
    listner.updateLobby(changes);
    Exception :
    java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-5
             at line         ol.addAll(ar);
    But ListView is getting updated with new data...so not sure if its right way to proceed...
    Thanks,
    Vijay                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Best Practice for implementing dual APEX applications environment

    Question:
    We are in the early stages of building an APEX application for Oracle SaaS consumption. The question I wanted to ask you is what would be the best way to deploy this app for production? Would it be easier just to create a new workspace in apex.oraclecorp.com and export the app definition or create a new instance of APEX container? Also, if we were to create a new container then what are all the hardware/middleware required?
    Follow up questions:
    1. What are you building and for what purpose?
    We are building an application for oracle employees (development, operations, and support) to assist in interacting with the CRM Saas environments. Entering bugs, tracking patch level, obtaining relevant environment contacts & urls.
    2. Who will be installing this application? Oracle customers? In their own on-premise APEX instances? Oracle Cloud?
    For the foreseeable future, there will only be the one internal install for internal use (CRM SaaS Enablement Team, DevOps).
    3. What are the database and APEX version requirements you'll have for this application?
    We do not have a particular requirement. The latest GA version would be the best candidates.
    4. Is it safe to say that there is minimal understanding & experience of APEX on your team?
    All we know is self-taught and from forum responses. Part of the problem we face is that we don’t know how to frame the questions in a way they can be understood.
    APEX container - By this I mean a fully functional APEX environment where applications can be deployed to.
    Use Case - We want to be able to make our Apex app available to the consumer (see above) and also continue to develop new features into that app for use at a later date. We are asking for information about a development model that works well for Apex apps.
    Thanks!!

    Moved the question to the internal Oracle forum:
    http://myforums.oracle.com/jive3/thread.jspa?threadID=1058413

  • Re: Best Practices for installing/running UCES Application

    I'm facing some technical challenges setting up NWDI 7.4 for UCES 6.05 development.
    First of all, out of all the required SCs for FSCM_DB, there's one (namely UMEADMIN) that cannot be checked in. I have checked in all the other SCs; the correct UMEADMIN SCA file is also in the inbox directory. So not sure why it's not visible for check-in?
    Then, when setting up NWDS (v7.0.30), I highlighted all the DCs under both FSCM_DB and SAP-UCES and created a project based on those. After that, I don't see the DC fscm/bd/web/shared in the J2EE DC Explorer. But I need to modify the jsp files in there. What am I doing wrong here?
    Also, when I setup FSCM_BD as a dependent SC, I chose "Source" as package type (instead of "Source and Archive") because I read a post somewhere. Not sure if that is the correct choice?
    Could the experts here please give me some pointers?
    Thanks!
    Eddy

    Hi Eddy,
    You can add FSCM_BD as independent SC to the same track where you've added UCES SC.
    Please select "Source and Archive" for FSCM_BD SC as well and try once again.
    Once you check in the archives, sync your track by updating / re-importing the track configurations in NWDS,
    Hope this helps!!!
    Regards,
    Anurag

  • Best Practices for Configuration Manager

    What all links/ documents are available that summarize the best practices for Configuration Manager?
    Applications and Packages
    Software Updates
    Operating System Deployment
    Hardware/Software Inventory

    Hi,
    I think this may help you
    system center 2012 configuration manager best practices
    SCCM 2012 task-sequence best practices
    SCCM 2012 best practices for deploying application
    Configuration Manager 2012 Implementation and Administration
    Regards, Ibrahim Hamdy

  • Best practice for multi-language content in common areas

    I've got a site with some text in header/footer/nav that needs to be translated between an English and Spanish site, which use the same design. My intention was to set up all the text as content to facilitate. However, if I use a standard dialog with the component's path set to a child of the current page node, I would need to re-enter the text on every page. If I use a design dialog, or a standard dialog with the component's path set absolutely, the Engilsh and Spanish sites will share the same text. If I use a standard dialog with the component's path set relatively (eg path="../../jcr:content/myPath"), the pages using the component would all need to be at the same level of the hierarchy.
    It appears that the Geometrixx demo doesn't address this situation, and leaves copy in English. Is there a best practice for this scenario?

    I'm finding that something to the effect of <cq:include path="<%= strCommonContentPath + "codeEntry" %>" resourceType ...
    works fine for most components, but not for parsys, or a component containing a parsys. When I attempt that, I get a JS error that says "design.path is null or not an object". Is there a way around this?

  • Best practice for mouseless ADF applications

    I am developing an ADF application where the users do not want to use the mouse.
    So I would like to know if there are a best practice for this?
    I am already using the accessKey functionality and subforms defaultCommand
    But I have had problems setting focus to objects on a page like tables. I would like a button to return the focus to the table after it has made the command like delete.
    I have implemented a solution where I have found inspiration several threads and other webpages (see below).
    Is this solution okay?
    Are there any problems with it?
    I would also like to know if there are better pathways to go like
    out of the box solutions,
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/79-global-template-button-strategy-360139.pdf (are there an example implementation?), or
    http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
    in advance thanks
    Inspiration webpages
    https://blogs.oracle.com/jdevotnharvest/entry/how_to_programmatically_set_focus
    http://technology.amis.nl/2008/01/04/adf-11g-rich-faces-focus-on-field-after-button-press-or-ppr-including-javascript-in-ppr-response-and-clientlisteners-client-side-programming-in-adf-faces-rich-client-components-part-2/
    how to Commit table by writting Java code in Managed Bean?
    Table does not refresh and getting error as UIComponent is Null
    A short description of the solution:
    (jdeveloper version 11.1.1.2.0)
    --- Example where I use onSetFocus in jsff page
    <af:commandButton text="#{hrsusuiBundle.FOCUS}" id="cb10"
    partialSubmit="true" accessKey="f"
    shortDesc="Alt+Shift+F"
    actionListener="#{managedBean_clientUtils.onSetFocus}">
    <af:clientAttribute name="focusField" value="t1"/>
    </af:commandButton>
    --- Examples where I use doTableActionAndSetFocus in jsff page
    --- There have to be a binding in the jsff page to delete, commit and rollback
    <af:commandButton text="#{hrsusuiBundle.DELETE}" id="cb4"
    accessKey="x"
    shortDesc="Alt+Shift+X"
    partialSubmit="true"
    actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}">
    <af:clientAttribute name="focusField" value="t1"/>
    <af:clientAttribute name="actionField" value="Delete"/>
    </af:commandButton>
    <af:commandButton text="#{hrsusuiBundle.COMMIT}" id="cb5"
    accessKey="s" shortDesc="Alt+Shift+S"
    partialSubmit="true"
    actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}">
    <af:clientAttribute name="focusField" value="t1"/>
    <af:clientAttribute name="actionField" value="Commit"/>
    </af:commandButton>
    <af:commandButton text="#{hrsusuiBundle.ROLLBACK}" id="cb6"
    accessKey="z" shortDesc="Alt+Shift+Z"
    partialSubmit="true"
    actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}"
    immediate="true">
    <af:resetActionListener/>
    <af:clientAttribute name="focusField" value="t1"/>
    <af:clientAttribute name="actionField" value="Rollback"/>
    </af:commandButton>
    --- This is the java class I use
    --- It is published in adfc-config.xml as a request scope managedbean
    public class ClientUtils {
    public ClientUtils() {
    public void doTableActionAndSetFocus(ActionEvent event) {
    RichCommandButton rcb = (RichCommandButton)event.getSource();
    String focusOn = (String)rcb.getAttributes().get("focusField");
    String actionToDo = (String)rcb.getAttributes().get("actionField");
    UIComponent component = null;
    String clientId = null;
    component = JSFUtils.findComponentInRoot(focusOn);
    clientId = component.getClientId(JSFUtils.getFacesContext());
    if ( "Delete".equals(actionToDo) || "Commit".equals(actionToDo) || "Rollback".equals(actionToDo) ){
    BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
    OperationBinding operationBinding = bindings.getOperationBinding(actionToDo);
    Object result = operationBinding.execute();
    AdfFacesContext.getCurrentInstance().addPartialTarget(component);
    if (clientId != null) {           
    makeSetFocusJavaScript(clientId);
    public static String onSetFocus(ActionEvent event) {
    RichCommandButton rcb = (RichCommandButton)event.getSource();
    String focusOn = (String)rcb.getAttributes().get("focusField");
    String clientId = null;
    if (focusOn.contains(":")) {
    clientId = focusOn;
    } else {
    clientId = findComponentsClientIdInRoot(focusOn);
    if (clientId != null) {           
    makeSetFocusJavaScript(clientId);
    return null;
    private static void writeJavaScriptToClient(String script) {
    FacesContext fctx = FacesContext.getCurrentInstance();
    ExtendedRenderKitService erks = null;
    erks = Service.getRenderKitService(fctx, ExtendedRenderKitService.class);
    erks.addScript(fctx, script);
    public static void makeSetFocusJavaScript(String clientId) {
    if (clientId != null) {
    StringBuilder script = new StringBuilder();
    //use client id to ensure component is found if located in
    //naming container
    script.append("var textInput = ");
    script.append("AdfPage.PAGE.findComponentByAbsoluteId");
    script.append ("('"+clientId+"');");
    script.append("if(textInput != null){");
    script.append("textInput.focus();");
    script.append("}");
    writeJavaScriptToClient(script.toString());
    public static String findComponentsClientIdInRoot(String id) {
    UIComponent component = null;
    String clientId = null;
    component = JSFUtils.findComponentInRoot(id);
    clientId = component.getClientId(JSFUtils.getFacesContext());
    return clientId;
    }

    Hi,
    I am developing an ADF application where the users do not want to use the mouse. So I would like to know if there are a best practice for this?
    Well HTML (and this is the user interface you see) follows a tab index navigation that you follow with "tab" and "shift+tab". Anything else is a short cut for which you use mnemonics (as you already do) or shortcuts (explained in http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html). There is a distinction to make between non-web environments (which I think you and your users have abackground in) and client desktop environments. Browsers block some keyboard functionality for their own purpose. So you may have to find a list of keys first that work across browsers. Unlike desktop clients, which allow you to "press a button" without the button to take focus, this cannot be done on the web. So you need to be clever here, avoiding buttons at all.
    The following paper is about JavaScript in ADF and explains the basics for what Chris Muir explains in : http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
    http://www.oracle.com/technetwork/developer-tools/jdev/1-2011-javascript-302460.pdf
    It has the outline for how to register short cut keys that perform a specific action (e.g. register ctrl+d to delete the current row you are on, or press F11 to execute a query (similar to Oracle Forms frmres files)). However, be aware that this includes some code you have to write (actually quite some code to be honest).
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/79-global-template-button-strategy-360139.pdf (are there an example implementation?), or
    http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
    Actually these are implementations as they come with example code for you to use and customize, do they? So what is this question asking for more ? Also note that global buttons don't quite have anything in common with the question you asked. I assume you want to see it as an implementation of the Forms toolbar that operates on the form or table the focus is in. This however does not work for the web as there is nothing that keeps track of which component has a focus and to what iterator (data block) it belongs. This would involve even more coding (though possibly doable)
    Frank

  • Best practice for E-business suite 11i or R12 Application backup

    Hi,
    I'm taking RMAN backup of database. What would be "Best practice for E-business suite 11i or R12 Application backup" procedure?
    Right now I'm taking file level backup. Please suggest if any.
    Thanks

    Please review the following thread, it should be helpful.
    Reommended backup and recovery startegy for EBS
    Reommended backup and recovery startegy for EBS

  • Best practice for keeping a mail session open in web application?

    Hello,
    We have a webmail like application where users login with their IMAP credentials, then are taken to an authenticated area of the site where they can manage different things about their email account.
    Right now the application is opening and closing a mail store connection (via a new javax.mail.Session) for each page load based on the current logged in user credentials. To me this seems like it would be a bad practice to keep opening and closing a connection each page load.
    Are there any best practices for this situation? It would be nice to be able to open the connection to the mail server on login, then keep that connection open until the person logs out, session expires, etc.
    I can probably put the javax.mail.Session into the HTTP session, but that seems like it would break any clustering functionality of tomcat. This would be fine if the machine the user is on didn't fail, but id assume if they failed over to another the mail session would be gone. Maybe keeping the mail session in the http session, checking for a connection, then first attempting to reconnect with the logged in credentials before giving up would be a possiblity?
    Any pointers would be appreciated

    If you keep the connection open across pages, you're going to need to deal with
    timeouts - from the http session and from the mail server.
    If you don't keep the connection open, you're going to need to "resynchronize"
    your view of the store/folder with each operation, in case the folder is modified
    by another session.
    The former is easier in the common cases, especially if you don't care how gracefully
    you handle failures. The latter is more difficult in the common cases, but handles
    failure better, and in particular handles clustering better. You'll need to measure it to
    see if it meets your performance and scalability requirements. You may need to mix
    the two approaches to get acceptable performance.

  • Best practice for auto update flex web applications

    Hi all
    is there a best practice for auto update flex web applications, much in the same way AIR applications have an auto update mechanism?
    can you please point me to the right direction?
    cheers
    Yariv

    Hey drkstr
    I'm talking about a more complex mechanism that can handle updates to modules being loaded into the application ect...
    I can always query the server for the verion and prevent loading from cach when a module needs to be updated
    but I was hoping for something easy like the AIR auto update feature

  • Best Practice for setting bind variable when application loads

    I am using JDeveloper 11.1.2.3.
    When my application loads, the first unbounded page has a table populated by a named query.
    I would like to set the parameter used by the named query when the page loads, to populate the initial data that is displayed.
    What is the best practice for a solution to this issue?

    user6003393 wrote:
    I am using JDeveloper 11.1.2.3.
    When my application loads, the first unbounded page has a table populated by a named query.
    I would like to set the parameter used by the named query when the page loads, to populate the initial data that is displayed.
    What is the best practice for a solution to this issue?Hi,
    You can set the bind variable on VO by overriding prepareSession() method in Application Module check this http://docs.oracle.com/cd/E37975_01/web.111240/e16182/bcservices.htm#sthref357
    Setting bind variable on runtime http://docs.oracle.com/cd/E37975_01/web.111240/e16182/bcquerying.htm#CHDECJHD
    Zeeshan

Maybe you are looking for

  • Problem with HP Deskjet F2210

    I have a deskjet F2210 and am having problems with it, of course it's out of warranty and I've tried just about everything.  All of the lights on top are on solid.  I cannot turn off my printer and when I try to run the diagnostic, it says that the p

  • How to get open items as on a key date

    Hi experts, I want to show a report Agewise report of offsets: 0-30, 30-60,.... Only the open items of Vendor as on a particular key date to be considered... How to get the open items as on a particular key date ? Regards, Rao.

  • Problem setting up an email account on mini.

    I setup my wife's account on my iPad as a test with no problem. But when I try to set it up on her mini it hangs in the "Verifying" stage of account setup and never completes! I have to do a reboot to get back to "home" pages. Results are the same wh

  • Why can't i adjust the bottom of my home page

    I recently deleted content from my home page, and rather than the bottom of the page adjusting up as it usually does, it's stuck in the old position.  i've tried adjusting the master page settings, and i've tried just deleting the space on the home p

  • Best practice for using static methods

    When i want to call a static method, should i call: 1) classInstance.staticMethod() or should i call 2) ClassName.staticMethod()?? is the first style bad programming practice?