Multi Tenant Application with Subdomains

I have set up a multi tenant application on azure active directory. This all works fine. Lets say the url is https://www.myapp.com. Currently my "reply url" is therefore
https://www.myapp.com.
I then updated my application to create a sub domain for each tenant. e.g. customer1.myapp.com, customer2.myapp.com etc. This works but the trouble is that I need to manually add each customers url to the list of allowed reply urls which isn't
very scalable. Is there any way around this. Some kind of wild card would be great but doesn't seem to work. e.g.
https://*.myapp.com. Or is there another way that I am missing.

Hi Paul,
One option would be to do this would be
by adding conditional logic in the application itself(in the redirecttoidentityprovider event), or by hard-coding a reply attribute with the URL of the application in the wsFederation element of the application's web.config before deploying.

Similar Messages

  • SQL pricing for Migrating an existing multi-tenant application

    We have a client with an ~10 year old multi-tenant application running on a traditional dedicated hosting environment.  The client is interested in migrating to Azure but only if they can benefit from PAAS features (managed backups, snapshots, scaling,
    etc).
    Their application automatically creates a new SQL database with each new customer signup.  As such, there are 886 databases which would need to be moved.  The total size on disk of all DBs together is only 3.82 GB.  Only 3 DBs are more than
    100 MB.  862 of the DBs are less than 10MB each (794 of those are less than 5MB).
    The way I read Azure pricing, each of these 883 DBs less than 100 GB would cost $5/month.  The only other alternative is to get a VM with SQL server on it -- but I can't see the advantage of that vs. the dedicated host they are already using.
    Is there any other alternative to consider when contemplating an application made up of many small databases?
    Thanks in advance for any advice,
    Jason

    Hi,
    If you have existing applications or workloads you simply want to grab and move to the cloud, SQL Server in a Virtual Machine is the easiest path to realize the benefits of the cloud. If you are looking to innovate and build new relational applications running
    in the cloud or extend parts of on-premises applications into the cloud, SQL Database is the best long-term solution.
    In your scenario, if use azure SQL, you must pay for each database per month, refer to
    http://azure.microsoft.com/en-us/pricing/details/sql-database/for more information about SQL Azure, cost too much.
    About use SQL VM, I suggest you read the following article.
     #http://blogs.msdn.com/b/windowsazure/archive/2013/06/04/the-top-10-things-to-know-when-running-sql-server-workloads-on-windows-azure-virtual-machines.aspx?Redirected=true
    Best Regards
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Can anyone explain what "multi-tenant" means with respect to OAM and OIF?

    Hi,
    I noticed that OAM 11gR2 has several additional authentication modules and schemes out-of-the-box for "MT" or multi-tenant. I've actually tried them, but am not clear exactly what their purpose is?
    As a test, I configured the FederationMT module and FederationMTScheme to protect a test resource in OAM, and then when I access the resource, I first get a page with one field for username and a "Sign In" button. After I enter a user name, it goes to a form login page and I can log into the OIF IdP, and that's about it. I guess that I don't see what this accomplishes?
    If anyone is familiar with this, please advise.
    Thanks,
    Jim

    Hi,
    Thanks for the metalink article. I've read that, and I can understand what the article is describing, but I'm not 100% clear how that relates to the configuration parameters in the FederationMTPlugin. The article talks about a mapping file, but I don't see something like that for configuring the TenantDismbiguationPlugin?
    The first step in FederationMTScheme plugin is a TenantDisambiguationPlugin, which takes two parameters:
    KEY_IDENTITY_STORE_REF
    KEY_FEDERATED_TENANTS (a comma-separated list of "some things")
    The steps/orchestration for the FederationMTPlugin has:
    Initial Step: FedUserAuthenticationPlugin
    TenantDisambiguationPlugin OnSuccess: FedAuthenticationPlugin OnFailure: UserIdentificationPlugin
    UserIdentificationPlugin OnSuccess: UserAuthenticationPlugin OnFailure: failure
    UserAuthenticationPlugin OnSuccess: success OnFailure: failure
    FedAuthnRequestPlugin OnSuccess: success OnFailure: FedUserAuthentication
    FedUserAuthenticationPlugin OnSuccess: success OnFailure: TenantAmbiguationPlugin
    [The OnError results for all steps are failure, so I haven't shown them.]
    So, the first step is the FedUserAuthenticationPlugin (AssertionProcessing), and if that fails, the next step is the TenantDisambiguationPlugin.
    I guess all of my questions are around what that TenantAmbiguationPlugin does, and how it works?
    I'm guessing that what you enter on the 1st webpage, which asks for a Tenant, is matched against the comma-separated list that is in the plugins "KEY_FEDERATED_TENANTS" parameter.
    Is that correct?
    But:
    a) What happens if there is a match of what you entered vs. what's in the "KEY_FEDERATED_TENANTS" list?
    b) What happens if there is NOT a match of what you entered vs. what's in the "KEY_FEDERATED_TENANTS" list?
    That article you mentioned calls for a mapping file, that maps what is entered (the tenant) to a user identity store, but where is that in the TenantDisambiguationPlugin's parameters? The only other parameter for that plugin is the "KEY_IDENTITY_STORE_REF" parameter.
    Having said that, I described the steps and step orchestration in the FederationMTPlugin above. If the TenantDisambiguationPlugin is suppose to somehow map what's entered to a user identity store name, then, with respect to the FederationMTPlugin, is that mapped user identity store used for the UI and UA steps (i.e., as the "KEY_IDENTITY_STORE_REF" for the UI and UA steps)?
    Thanks for your help with this. Oracle's documentation certainly merits some improvement :(...
    Jim

  • Exchange 2010SP1 Multi-Tenant Issue with Multiple Domains

    I have an installation of Exchange 2010 SP1 with multi-tenant support enabled via the install time /hosting switch.
    Everything works well for my smaller clients. I now have a bigger client that has about 300 users and 3 domains. The users are divided roughly equally amongst the domains - ie, 3 domains each with 100 users. I've added the first domain as normal:
    $c = get-credential
    New-organization -name "Pretend Company" -DomainName domain1.com -ProgramId HostingSample -OfferId 2 -location en-US -AdministratorPassword $c.password
    After that I logged into the ECP control panel and created all the users. The migration went smoothly and has been working well for the last week. Now, it's time to add the next domain. Since the client wants all 300 users visible in the same GAL, I just
    added a domain to the organization:
    New-AcceptedDomain -Name domain2.com -DomainName domain2.com -Organization "Pretend Company"
    This is where I run into problems. When I try to create the users for domain2.com via ECP, I am able to create the user successfully, and select domain2.com from the drop down. Once the user is created however, I am able to see that although their UPN
    is [email protected], it created their email address as [email protected].
    I tried creating the users manually via EMS:
    $password = Read-Host "Enter password" -AsSecureString
    New-MailUser -UserPrincipalName [email protected] -Password $password -Name "Test User" -Organization "Pretent Company" -PrimarySmtpAddress [email protected]
    The user creates successfully and I can see the user created in the proper OU in AD. Unfortunately I can not see them in ECP nor can I see them if I do:
    get-mailbox -Organization "Pretend Company"
    This makes the management of the users very difficult to delegate, and I'm not sure that the users at domain2.com will even work.
    This brings me to my questions:
    (1) Is is possible create accounts that have different domain names in their default email addresses within the same Organization in /hosting mode?
    (2) Is this something I need to do with an EmailAddressPolicy? I read the documentation but it didn't seem /hosting friendly.

    Hi Earonk,
    Please post your issue on below forum, you will get more help from there:
    http://social.technet.microsoft.com/Forums/en-us/exchange2010hosters/threads
    Regards!
    Gavin

  • How to generate multi-lingual applications with Designer?

    In Designer 10g we have the definitions of hundreds of tables and views and
    forms/reports modules. Currently all texts (prompts, hints, comments, help texts, etc) are in Dutch. Because of new customers in Germany, we now have to translate everything into German (and in the future also to French and English etc).
    We know that we can use Translation Hub to translate forms and reports,
    however, many tables/columns are used by more modules (sometimes 10 or more). So, the translation of each module with the Hub is very inefficient.
    We are wondering if there are easier ways. For example, when we translate a
    prompt of a tablecolumn, Designer (Headstart) can update all related module items. So, with one translation, we in fact translate many modules at once.
    We could perhaps make a copy of the application, but that will work very
    inefficiently because each modification has to be done on multiple
    applications.
    Has anyone a genius solution for this?
    Thanks for your help, Jan Willem

    I hate to be the one to break it to you, but there isn't a genius solution out there for you. And it isn't a Designer problem, it's an application architecture problem.
    You'll notice that Headstart (since you've looked at that) does two things for you. One is that it has utilities to go update many items for you. Two is that it uses standard error and LOV tables which are multi-lingual based. You enter your messages and lookups in many languages (many rows per code, one per language) and the Headstart library logic displays the right row based on the code and the NLS setting. architecture.
    In your case, where you have hard-coded everything, if you don't want to re-architect things, then your only solution is to clone things. Probably best off (based on other client experience) to just keep the single model in your base language, develop and gen as you have been, and then work your way through all the source code (database and application components) to do all the translation (as noted the Translation Hub can help some), and then implement each result. At least that way you know all the functional logic works. So you're not introducing any bugs (except for when the translated info is longer then the base info -- as we have here in Canada where French takes up more space then English). sorry. ugly.

  • ADF-Create the multi panel application with one connection to DB

    Hi,
    I create a panel with table and one button.
    When I press the button its opens detail panel.
    That panel has table too. While opening detail panel there creating new connection and my application has 2 connections to DB.
    my cod:
    xxPanel2 panel2 = new xxPanel2();
    panel2.setBindingContext(getBindingContext(mBindingContext));
    …//hear showing panel
    BindingContext mBindingContext = panelBinding.getBindingContext();
    public static BindingContext getBindingContext(BindingContext fBindingContext)
    HashMap fUserParams = null;
    if (fBindingContext == null)
    JUMetaObjectManager.setErrorHandler(new JUErrorHandlerDlg());
    JUMetaObjectManager vJUMOManager = JUMetaObjectManager.getJUMom();
    vJUMOManager.setJClientDefFactory(null);
    fBindingContext = new BindingContext();
    fBindingContext.put(DataControlFactory.APP_PARAM_ENV_INFO,
    new JUEnvInfoProvider());
    fBindingContext.setLocaleContext(new DefLocaleContext(null));
    fUserParams = new HashMap(4);
    fUserParams.put(DataControlFactory.APP_PARAMS_BINDING_CONTEXT,
    fBindingContext);
    vJUMOManager.loadCpx("xproject2.DataBindings.cpx", fUserParams);
    return fBindingContext;
    }What I must add to this cod to have a one connection for whole application.
    Haw could I pass connection to the second panel?
    Thanks!

    I am sending bindingcontext of first panel's panelBindging into the second panel:
    xxPanel2 panel2 = new xxPanel2();
    panel2.setBindingContext(panelBinding.getBindingContext());But ther are exception:
    oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, msg=null
    at oracle.jbo.JboException.<init>(JboException.java:346)
    at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:225)
    at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:271)
    at xproject2.xxPanel2.setBindingContext(xxPanel2.java:150)
    at xproject1.xPanel1.jButton1_actionPerformed(xPanel1.java:172)
    at xproject1.xPanel1.mav$jButton1_actionPerformed(xPanel1.java)
    at xproject1.xPanel1$1.actionPerformed(xPanel1.java:70)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
    at java.awt.Component.processMouseEvent(Component.java:5488)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:158)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    ## Detail 0 ##
    java.lang.NullPointerException
    at oracle.jbo.uicli.jui.JUPanelBinding.bindUIControl(JUPanelBinding.java:821)
    at xproject2.xxPanel2.jbInit(xxPanel2.java:69)
    at xproject2.xxPanel2.setBindingContext(xxPanel2.java:145)
    at xproject1.xPanel1.jButton1_actionPerformed(xPanel1.java:172)
    at xproject1.xPanel1.mav$jButton1_actionPerformed(xPanel1.java)
    at xproject1.xPanel1$1.actionPerformed(xPanel1.java:70)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
    at java.awt.Component.processMouseEvent(Component.java:5488)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:158)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)What could I do to solve this problem?
    No I have not MSN if you want you can write me in my mail: [email protected]
    Thanks for your answer.

  • How to make multi-tenant business rules

    hi'
    I want to write tenant specific Business rules in multi-tenant application, please give me some tips of making multi-tenat business rule.
    I know how to write common business rule for all the tenants.
    thanks
    Yatan

    I'd suggest using Flash Media Interactive Server if you wish to make this type of application and use Flash as the interface.  I can't give you the details on exactly how to implement it, but using Remote Shared Object and FMIS would serve as the basis.  I believe that the package comes with examples of Shared Objects that can serve as a simple basis from which to proceed.  After that you might want to see if you can find an available whiteboard app that can be leveraged to do as you wish.
    I apologize in advance if using this type of solution is a non-starter, I've been using FMIS locally and have plans to eventually implement something similar to this type of drawing app as well.

  • Unable to send to external email recipients - Multi Tenant Exchange 2013 - MultiRole servers in DAG

    Greetings all, I hope someone can help.
    I have created a Exchange 2013 multi-tenant organization, with two servers, both multi-role - CAS and Mailbox roles.
    Internal mail flow is fine (external email addresses can send to the domain).
    External firewall port forwards ports 443 and 25 to the Internal DAG IP address.
    There are two multi-role Exchange servers that are members of the DAG.
    I am able to connect to OWA and ECP via https://externalIP/OWA and https://alias.domain.com/OWA
    No SSL certificates have been purchased or installed yet.
    Exchange URLs have not been changed since default configuration at install.
    OWA and ECP works both internal and external.
    External DNS works with SPF and PTR records correctly configured
    Exchange RCA - Send test only fails with one Spam Listing (this Blacklist provider now flags all domains and you cannot ask to be removed)
    Send Connectors are the default ones created during install. Receive connector is standard configuration with  - * - 
    When sending email to an external address, I receive a failure notice
    ServerName.test.corp.int gave this error:
    Unable to relay 
    Your message wasn't delivered due to a permission or security issue. It may have been rejected by a moderator, the address may only accept email from certain senders, or another restriction may be preventing delivery.
    More Info - 
    ServerName.test.corp.int
    Remote Server returned '550 5.7.1 Unable to relay'
    I have been troubleshooting this for many hours with no progress.
    I have created new Send Connectors for the server that is advising that it is unable to relay, but they have all failed.
    I have tried setting the Internal IP address for Exhange Server 1 (Exchange Server 2 reports failure), with most combinations of Security (Anonymous, Exchange Users, etc).
    I have also tried with the IP range 192.168.11.0/24 to allow the whole the subnet, I still receive the unable to relay failure notice.
    I have tried this guide - hxxps://glazenbakje.wordpress.com/2012/12/30/exchange-2013-how-to-configure-an-internal-relay-connector/ - with different combinations, still no resolution.
    I am at a loss as to why I can't send out with the default configuration. I would assume that email would flow out without any changes, but this does not happen.
    Can someone please assist before I lose my sanity.
    Thanks in advance,
    Terry

    Greetings all, I hope someone can help.
    I have created a Exchange 2013 multi-tenant organization, with two servers, both multi-role - CAS and Mailbox roles.
    Internal mail flow is fine.
    Incoming mail from external senders is also fine. - 
    external email addresses can send to the domain).
    External firewall port forwards ports 443 and 25 to the Internal DAG IP address.
    There are two multi-role Exchange servers that are members of the DAG.
    I am able to connect to OWA and ECP via https://externalIP/OWA and https://alias.domain.com/OWA
    No SSL certificates have been purchased or installed yet.
    Exchange URLs have not been changed since default configuration at install.
    OWA and ECP works both internal and external.
    External DNS works with SPF and PTR records correctly configured
    Exchange RCA - Send test only fails with one Spam Listing (this Blacklist provider now flags all domains and you cannot ask to be removed)
    Receive Connectors are the default ones created during install. Send connector is standard configuration with  - * - 
    When sending email to an external address, I receive a failure notice
    ServerName.test.corp.int gave this error:
    Unable to relay 
    Your message wasn't delivered due to a permission or security issue. It may have been rejected by a moderator, the address may only accept email from certain senders, or another restriction may be preventing delivery.
    More Info - 
    ServerName.test.corp.int
    Remote Server returned '550 5.7.1 Unable to relay'
    I have been troubleshooting this for several days with no progress.
    I have created new Receive Connectors for the server that is advising that it is unable to relay, but they have all failed.
    I have tried setting the Internal IP address for Exhange Server 1 (Exchange Server 2 reports failure), with most combinations of Security (Anonymous, Exchange Users, etc).
    I have also tried with the IP range 192.168.11.0/24 to allow the whole the subnet, I still receive the unable to relay failure notice.
    I have tried this guide - hxxps://glazenbakje.wordpress.com/2012/12/30/exchange-2013-how-to-configure-an-internal-relay-connector/ - with different combinations, still no resolution.
    Even more info - Further troubleshooting -
    I found my one of my Exchange servers had an extra NIC. I have since added a second NIC to the other server, so now both Exchange servers have dual NICs. I removed the DAG cleanly and recreated the DAG from scratch, using this link -
    hxxp://careexchange.in/how-to-create-a-database-availability-group-in-exchange-2013/ 
    The issue still exists, even with a newly created DAG. I also found that the Tenant Address Books were not 'applied'. I applied them but still no resolution
    I think the issue is related to multi-tenant configuration even though the error says that it can't relay. The unable to relay message can appear when sending from a domain that the Organization does not support. Like trying to email as [email protected]
    when you domain name is apple.com - But through extensive research I still can't resolve the issue.
    Can someone please assist before I lose my sanity.
    Thanks in advance,
    Terry

  • Multi Currency application

    Hi All.
    I have created a multi currency application with only two currencies USD and Euro. But when i try to enter the data into the data forms through USD or Euro, i am not able to do that.
    But when i select local then it allows me to enter the data. I never created a local member and its not their in the dimension, so what is the significance of this local currency.
    Also, i created some currency conversion scripts and run them successfully but when i see data across Euro or USD it is the same data i entered into the local currency.
    Please guide as I am very confused.

    Have a read of this post :- Re: Read/Write functionality in Planning Data Forms
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Adobe Drive 3 with Alfresco in multi-tenant mode!

    Hi,
    I am trying to use Adobe Drive 3 with Alfresco CE 3.4 and have difficoulty accessing files when I use multi tenant mode on the alfreso side?! Anybody seen this before? Anybody know a solution to it?
    Regards
    Fred

    Hi Fred,
    On my enviorment, i use AD 3.0 and alfresco-community-3.4.d on Windows XP. there is no difference after set up the multi tenant mode.
    i still can assess  files on  Alfresco server.
    So can you please show your setting up for the multi tenant mode? And what's detail issue for your accessing files?
    Thanks,
    Jianfeng

  • Applications with multi-users?

    Exist there downloadable example apllications witch use multi-users managed by sessions Beans.

    Thanks for your answer.
    Another questions...
    I have problems with my multi-users application (like you saw it). In fact, sessions mix between them.
    1) Do you know if there are any configuration for sessionBean to accept many users?
    2) Do you know if it's possible that tomcat or sun apllication server mix the sessions?
    Thanks

  • Webex Node Multi-Tenant Configuration

    Hi,
         We are currently deploying webex node on ASR for a client, in the UC 8.x it mentions the ability to multi-tenant the node capabilityes e.g
    Page 22-9
    "There is also the potential to deploy the WebEx Node for ASR in a multi-tenant capacity, in which two
    businesses working closely together with staff working on each other's premises could have the other's
    WebEx site defined on their ASR Nodes. This means that, when staff for Enterprise B access their
    company's WebEx site through Enterprise A, they can use the local ASR Node to accelerate their
    meeting while saving bandwidth for Enterprise A. This feature can also benefit organizations that have
    multiple WebEx sites."
    This is the only reference in any guide I can find to being able to do this.
    Has anyone actually done this? Is it actually possible? and if so does anyone have any documentation that they can point out that may be of use trying to deploy this type of solution.
    I know it's a long shot but any help is much appreciated.

    Hi A.Zarei,
    Based on your description, I recommend to check if the Managed Metadata service application is associated with the web application where your My Site hose site exists.
    Please double check if the service account of the My Site host site web application and the user profile service application has read permission on the Managed Metadata service application.
    Best regards.
    Thanks
    Victoria Xia
    TechNet Community Support

  • How to communicating one application with another?

    I wanted to make a web site that have the ability to view,update,insert and delete record in a database. How to do that? How can one application communicate with another? example, I wanted to have XHTML communicate with Java and Java to communicate with my database that is pointbase database.

    Multi-tier application communication is a somewhat complex matter. It may be made using differents techniques and designs. But like Sum-shusSue said, a typical Java-based solution would use these Java technologies: JSP (Java Server Page) for the presentation side (the client), Servlet or EJB (Enterprise Java Bean) for the server-side logic. The communication with the Database is made through JDBC.
    I suggest that you take a look at the J2EE edition of Java. That stands for Java 2 Enterprise Edition and it is specifically made for enterprise system development, such as Servlet, JSP, EJB, etc...
    This is a whole lot of new subjects and, from my humble experience, it is not that easy. i.e. I would not recommend it for strict newbies. However, if you have some months of Java coding on your side, maybe you should take a look. You can check first the left menu of this site, you'll find, under Technologies the sub-menu J2EE. There's also, somewhere on the site, tutorials on differents J2EE topics. Finally, I would recommend you this book:
    Professional Java Server Programming, J2EE 1.3 Edition, edited by Wrox. Of course, there a lot of other books on hte market. J2EE is a hot topic!
    Hope this help...
    Simon

  • Maintaining default locale in multi-lingual application

    Hello,
    I have a multi-lingual application where the language can be changed at runtime.
    To make the following code work properly, the default locale has to be set each
    time the language changes. Why?
    Since I need to check sometimes the platforms original locale (I do this with
    "Locale.getDefault()"), I am looking for a way not to change the default locale,
    but still to change the resourceBundle.
    In the API I read under "ResourceBundle, Cache Management" that the bundles are cached. Is this the reason why redefining the resourceBundle has no effect? And if yes, how can it be avoided?
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    public class Y extends JFrame {
      boolean toggle;
      Locale currentLocale;
      JButton b;
      ResourceBundle languageBundle;
      String country, userLanguage;
      public Y() {
        setSize(300,300);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        Container cp= getContentPane();
        b= new JButton();
        b.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent evt) {
         toggle= !toggle;
         if (toggle)
           country= "DE";
         else
           country= "GB";
         setUserLanguage(country);
        cp.add(b, BorderLayout.SOUTH);
        setUserLanguage("GB");
        setVisible(true);
      public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
          public void run() {
         new Y();
      void setUserLanguage(String country) {
        if (country.equals("DE"))
          userLanguage= "de";
        else
          userLanguage= "en";
        currentLocale = new Locale(userLanguage, country);
    //    System.out.println(currentLocale); // The locale changes ...
    //    Locale.setDefault(currentLocale); // Remove comment slashes and it works.
    //    languageBundle.clearCache(); // No effect.
        languageBundle = ResourceBundle.getBundle("MyBundle",currentLocale);
        System.out.println(languageBundle); // ... but the resourceBundle does not change.
        b.setText(languageBundle.getString("ButtonText"));
    The resource bundle files:
    MyBundle.properties
    ButtonText= Just a button
    MyBundle_de_DE.properties
    ButtonText= Nur ein KnopfEdited by: Joerg22 on 18.08.2008 13:26

    What's your default locale? If your default locale is de_DE, that's the expected behavior. The reason for it is the fallback mechanism searches default locale's bundle before falls back to the base bundle, i.e., in case of searching en_GB bundle, the search order is:
    en_GB
    en
    de_DE
    de
    (base)
    So, it will choose MyBundles_de_DE.
    If you do not want this default locale fallback, you can specify ResourceBundle.Control instance, which is returned from ResourceBundle.Control.getNoFallbackControl() method, in your getBundle() call. Or if you do not use JDK6, you could copy the base bundle to MyBundles_en, which is ugly but should work.
    Naoto
    Edited by: naoto on Aug 18, 2008 1:05 PM

  • Multi-entity application

    Hi there,
    I'm developing a multi-entity application and I'm not sure how to optimize the data base. Let say big tables for each entity will have 15000 rows per year and we are expecting at least 150 entities, so we are talking about 2250000 rows per year. It´s a web application and we want an optimized response, there are complicated queries with a lot of JOINS so we did some test and it´s a bit slow.
    well, we thought in two options:
    1.- a column in each table to indicate the entity: tables with 2250000 rows each year.
    2.- each entity connects with a different oracle user wich contains its own tables (big ones): 15000 rows per year but 150 users.
    I asked about this, someone told me that 150 users wouldn't be efficent becouse oracle would spend too many memory to manage it (I dont know).
    Any answer will be welcome
    Thanks!
    PD: sorry about my english, I´m spanish ;-)

    So, wouldn´t you suggestuse a different user for each entity?
    Imagine you have 10 tables, 5 of them have around 15000 rows per year and there will be 150 entities like that. we thoght of using a different user for each one just for the eavy tables, and keep the rest of tables in a common schema. So the entity A access with the user A (all the schemas have synonims to the common schema).
    Ah, It´s a web app.

Maybe you are looking for