Why do I need ActiveSync External URL?

Hello, All!
We are starting migration from Exchange 2010 to Exchange 2013.
We've already installed 3 Exchange 2013 Servers and configured them also.
The External IP for ActiveSync is bounded to F5 that moves user's request towards ISA that is located in our DMZ and ISA moves the request to Exchange Servers.
One problem that I'm facing now and it's: Do I need to configure External URL for ActiveSync on Exchange 2013?
As far as I know, that External URL of ActiveSync is being used for Autodiscover process only.
And after that the only URL that is used it's Internal one.
Am I right? Where I can find accurate information about External and Internal URL's usage?
BR,
Pavel

As long as autodiscover is in Place active sync wont be needed in many cases.
Some issue could occure if its not configured:
http://www.expta.com/2013/12/exchange-2013-cu3-upgrade-removes.html
Please mark as helpful if you find my contribution useful or as an answer if it does answer your question. That will encourage me - and others - to take time out to help you. Thank you! Off2work

Similar Messages

  • Aex: dynamic url - need to pass corresponding column values to external url

    Hi All,
    I have created a report in which am trying to click on a column link which is a external url. In the url, part of column value needs to be passed as ID.
    Example: Report
    Name ID     Dept     Details
    King     FIN3413900     Finance     Link
    James     ACC3445812     Accounts     Link
    So when I click on Link it should take me to the page : (See below example)
    Display image for BLOB  Download link in Interactive Report (For King)
    Conditional regions (For James)
    MessageID is no from the column ID. (FIN3413900). Hence it needs to be passed corresponding to the row clicked.
    Common link is http://forums.oracle.com/forums/click.jspa?searchID=-1&messageID= (Only the number is derived directly from column ID).
    I hope the requirement is clear. If any clarifications required let me know.
    Please help me out with the possible solutions....Thanks in Advance....
    Regards,
    Vinoth

    Hi,
    Go to the Report Attributes of your report. The column you have defined for the column link click on the edit icon. In the Column Link section choose target URL and in the URL field enter :-
    http://forums.oracle.com/forums/click.jspa?searchID=-1&messageID=#ID# Where ID is the name of the column that holds the FIN3413900.
    Hope that makes sense :o)
    Regards
    Paul

  • What is a url and why is it needed to use photoshop

    What is a URL and why do I need it to use photoshop on my computer?

    what problem are you seeing?

  • I need a Lightbox for an external URL - how?

    Hello, from Germany,
    I would like to show a picture (jpg) that links to an external URL in a Lightbox Window (90% x 90 % size of the screen).
    Here is an example... Pls click on a preview picture:
    http://www.rundblick.eu/referenzen.htm
    I can´t find a way to manage that.
    I thank you very much for any help and support.
    Best regards
    Frank

    Frank -- This is why forums are not the best teaching tools! The example I'm speaking of is the lighbox here: http://www.katiescafe.com/home.html -- this is a placed bitmap graphic that when clicked brings up a Lighbox Widget with an embedded YouTube video. Instead of embedding the video you could perhaps embed an iFrame with the URL you're looking to play within the lighbox widget? Easiest way to try this out would be to download the example embed lightbox widget from the Muse Widget gallery, here: http://muse.adobe.com/widget/video-lightbox-embed-widget-ricks. I am not certian how your iFrame will behave with your specfic URL, but you can give this a try. Sorry if you are meaning something different than I'm assuming here.

  • Changing Internal & External URLs?

    We run split DNS so right now for all services the internal and external Exchange 2010 URLs are simply set to mail.domain1.com.
    If I change them to mail.domain2.net, assuming there is a valid cert on the Exchange box for mail.domain2.net, and assuming that split DNS points mail.domain2.net to the internal/external IP of the Exchange box, new clients should pick up the new domain.
    What happens to existing clients i.e. Outlook and ActiveSync?
    Will they continue to use mail.domain1.com until the account is removed and added again, or do they do a periodic refresh/update/poll of which setting to use?
    In particular would the URL used by Outlook Anywhere be updated on the client automatically?
    This topic first appeared in the Spiceworks Community

    Hi,
    For the migration from the Exchange 2007 to Exchange 2013, we need change the external URLs with the new Exchange 2007 host name legacy.domain.com and migrate all mailboxes including public folders.
    For more information about the migration, you can refer to the following articles:
    http://blogs.technet.com/b/meamcs/archive/2013/07/25/part-3-step-by-step-exchange-2007-to-2013-migration.aspx
    http://blogs.technet.com/b/meamcs/archive/2013/07/25/part-4-step-by-step-exchange-2007-to-2013-migration.aspx
    If you have any question, please feel free to let me know.
    Thanks,
    Angela Shi
    TechNet Community Support

  • Transaction Launcher - External URLs

    Hello,
    I've created a link to an external URL using transaction launcher and the actual link itself works fine, but I have a couple small issues that I'd like to fix if anyone has any advice:
    First, I have it set to launch the URL in a new window, and the window pops up behind the Webclient.  Is it possible to have it pop up on top?
    Second, once the user clicks this link, in the webclient itself, they're taken to a screen that says:
    The object you have selected is starting in a new browser window. You can continue working normally in the current application. However, you may have to navigate back to the page you were working on.
    ...and then they have to click the back button to return to the screen they were on before they clicked the link.  Does anyone know how to keep the web client on whatever screen the user was already on and just launch the link in a new window without having it navigate anywhere else?
    Thanks!

    Hi TOM,
    If your requirement is to open some URL say google.com etc in a now window, then there are only 2 ways
    1) Use Transaction Launcher
    2) Use PopUp Window.
    1) If you use transaction launcher, and created the link in your direct link group then on click of the link, the URL will open in new window but you cant avaoid the message that you get in the current window. Also, if users POPUP Blocker is ON, user will never come to know why the new window has not launch.
    2) This is very simple and straight forward approch for opening URL. However, POPUP windows in WEB UI are modal windows, so say on click on a button on Account Overview Screen, i open google.com in a popup then unless i close this popup , i can not work on the account overview screen .  However, you can see the account overview screen as it is and you can resume back when the popup is closed. Also you can define the even handler on close event of pop up so you can pass the data to & fro between the webclient view and the pop up.
    to open some extrenal URL in a PopUp , You will need to create a blank view and attach it to a window. In .htm file of the view, you can use  tag IFRAME and call your external URL here.
    I have done this to open a dotNet application through web ui and it works excellently !!
    Hope its helpful.
    Thanks & Rregards
    Suchita
    PS : the popup blocked problem will still be there however, it flashes a message like pop up blocker is ON in case of using popup window

  • Exchange 2010 - Virtual Directory Internal & External URL's with Wildcard Cert

    Hi Guys
    I am trying to determine if my Exchange 2010 server Virtual Directory URL's are setup according to best practice. I'm sure anyone with good Exchange experience will instantly be able to tell me if my Virtual Directory DNS is correct or could cause issues.
    Scenario:
    Hosted Exchange 2010 SP1. Multiple client mail domains hosted
    2x CA, 2x HT, 2x MB, 2x DC
    Wildcard *.example.co.za certificate being used on CA servers
    AD domain is he.example.za.net
    CA Server naming example: ca1.he.example.za.net, ca2.he.example.za.net
    he.example.net DNS is done by DC servers
    External name used by clients: outlook.example.co.za (For Outlook setup and OWA access)
    outlook.example.co.za has two A records pointing to the CA IP's
    PROBLEM/CONCERN:
    We have a random OWA log out issue that we believe might be due to ambiguous DNS names being used.
    If I change the Virtual Directories External URL to be the FQDN of the server, we get a Certificate Error in clients (due to the .co.za Wildcard). The external URL clients use
    must be on .co.za.
    So are the Virtual Directory URL's causing the CA servers to loose track of who is authenticated in where (leading to OWA disconnection)? Is it fine to load balance the CA servers with the DNS the way we are doing currently? Any other issues you see?
    Current Virtual Directory settings:
    Note that they are identical on CA1 and CA2
    [PS] C:>Get-OabVirtualDirectory -server ca2 |fl *url
    InternalUrl : https://outlook.example.co.za/OAB
    ExternalUrl : https://outlook.example.co.za/OAB
    [PS] C:>Get-WebServicesVirtualDirectory -Server ca2 |fl *url
    InternalNLBBypassUrl : https://ca2.he.example.za.net/ews/exchange.asmx
    InternalUrl          : https://outlook.example.co.za/ews/Exchange.asmx
    ExternalUrl          : https://outlook.example.co.za/ews/Exchange.asmx
    [PS] C:>Get-ActiveSyncVirtualDirectory -Server ca2 |fl  *url
    MobileClientCertificateAuthorityURL :
    InternalUrl                         : https://outlook.example.co.za/Microsoft-Server-ActiveSync
    ExternalUrl                         : https://outlook.example.co.za/Microsoft-Server-ActiveSync
    [PS] C:>Get-EcpVirtualDirectory -Server ca2 |fl  *url
    InternalUrl : https://ca2.he.example.za.net/ecp
    ExternalUrl : https://outlook.example.co.za/ecp
    [PS] C:>Get-OwaVirtualDirectory -Server ca2 |fl  *url
    Url             : {}
    Exchange2003Url :
    FailbackUrl     :
    InternalUrl     : https://ca2.he.example.za.net/owa
    ExternalUrl     : https://outlook.example.co.za/owa
    [PS] C:>Get-AutodiscoverVirtualDirectory |fl *url, server
    InternalUrl :
    ExternalUrl :
    Server      : CA1
    InternalUrl : https://outlook.example.co.za/
    ExternalUrl : https://outlook.example.co.za/
    Server      : CA2
    REALLY APPRECIATE SOME EXPERT ADVISE. Thanks.

    Hi Kane,
    Why did not you use cas array to load balance client connectivity?
    If you create a CAS array, you can assign an virtual IP (VIP) for the CAS array FQDN (e.g CASarray.example.za.net), and then point all the Virtual Directories internal URL to CAS array fqdn;
    For external, you can point outlook.example.co.za to VIP which had been assigned to CAS array.
    I recommend you refer to the following article to understand CAS array:
    http://technet.microsoft.com/en-us/library/ee332317(v=exchg.141).aspx#CASarray
    http://blogs.technet.com/b/ucedsg/archive/2009/12/06/how-to-setup-an-exchange-2010-cas-array-to-load-balance-mapi.aspx
    http://blogs.technet.com/b/exchange/archive/2012/03/23/demystifying-the-cas-array-object-part-1.aspx
    Best regards,
    Niko Cheng
    TechNet Community Support

  • Change external urls on existing deployment without user interruption

    We've got a client who changed its Company Name just after the migration of 2010 => 2013.
    All mailboxes are moved to 2013.  Now we need to change their external/internal urls without user interruption...
    Current config:
        2 x Windows 2012 R2 + Exchange 2013 RU7 => 1 DAG => 2 databases (primary & archive)
    External urls:
    activesync.currentcompany.be
    autodiscover.currentcompany.be
    Internal urls:
    Exchange2013.currentcompany.be
    DNS records:
    autodiscover SRV record for newcompanyname.be
    Accounts:
    [email protected]
    New config:
    Same servers
    External urls:
    activesync.newcompanyname.be
    Internal urls:
    exchange2013.newcompanyname.be
    What is the best practice for this?

    Hi,
    If the domain name is changed, please check the email address policy for all domain users. If all users are using the new domain, the old domain would never be used and all DNS records have been changed to new domain, we can run the following commands to
    change the URLs:
    Set-ClientAccessServer -Identity CAS2013 -AutodiscoverServiceInternalUri https://exchange2013.newcompanyname.be/autodiscover/autodiscover.xml
    Set-WebServicesVirtualDirectory -Identity "CAS2013\EWS (Default Web Site)" -InternalUrl https://exchange2013.newcompanyname.be/ews/exchange.asmx -ExternalUrl https://activesync.newcompanyname.be/ews/exchange.asmx
    Set-OABVirtualDirectory -Identity "CAS2013\oab (Default Web Site)" -InternalUrl https://exchange2013.newcompanyname.be/oab -ExternalUrl https://activesync.newcompanyname.be/oab
    Set-OwaVirtualDirectory -Identity "CAS2013\OWA (Default Web Site)" -ExternalUrl https://activesync.newcompanyname.be/owa
    -InternalUrl https://exchange2013.newcompanyname.be/owa
    Set-EcpVirtualDirectory -Identity "CAS2013\ecp (Default Web Site)" -ExternalUrl https://activesync.newcompanyname.be/ecp
    -InternalUrl https://exchange2013.newcompanyname.be/ecp
    Set-ActiveSyncVirtualDirectory -Identity “CAS2013\Microsoft-Server-ActiveSync (Default Web Site)” -ExternalUrl https://activesync.newcompanyname.be/Microsoft-Server-ActiveSync
     -InternalUrl https://exchange2013.newcompanyname.be/Microsoft-Server-ActiveSync
    Additionally, please create a new trusted certificate with the following namespaces:
    activesync.newcompanyname.be,autodiscover.newcompanyname.be,Exchange2013.newcompanyname.be
    Assign the certificate with IIS service.
    Regards,
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact [email protected]
    Winnie Liang
    TechNet Community Support

  • PrepareRedirect and external URL

    Hi
    I've created a custom service that I would like to redirect to an external url outside UCM but once a user has been authenticated in UCM. Is it possible? It seems that in the prepareRedirect subservice only idcServices are accepted. Does anyone know how to achieve this?
    My service is something like this:
    <td>MY_SERVICE</td>
    <td>Service
    0
    null
    null
    null<br>
    null</td>
    <td>3:checkForceLogin::0:null
    3:prepareRedirect:www.oracle.com:0:null</td>
    If the URL contains ":" then I'm getting an Idocscript syntax error.
    Thanks & regards.

    I'm wondering what your use case is
    - you can use other means to redirect to an external URL (check e.g. this: http://en.wikipedia.org/wiki/URL_redirection)
    - prepareRedirect is used to redirect to a page once a UCM task (like CheckIn or Update) finishes; often it redirects to HomePage or "DoAnother" page template, plus it holds user's login
    To be honest, I don't get why anyone would need to create a service (called in unmanned mode?) that would require UCM login and then immediately redirect to an external URL (shown to the user?). It sounds to me more like a SSO (single sign-on) scenario, where UCM is used solely as a pool of user identities. In fact, in 11g it makes even less sense, because identities are stored in a LDAP. Nevertheless, it sounds like a way to sort out your problem: if not done yet, suggest to store identities in LDAP and authenticate against it when login to the external URL. If you need it as a service, check for Oracle Service Bus or similar middleware technologies.

  • Linking to external URL using POST from a button in APEX

    APEX Experts
    Does anyone know how to link to an external URL using POST rather than GET behind an APEX button? I'm pretty sure there must be a javascript call but I'm a real newbie to both APEX and Javascript.
    Also does anyone know why APEX decodes an encoded URL before sending it out and how to stop it?
    Thanks
    Deborah

    I did something similar recently but it was in .NET.
    Hopefully someone else here can help you do with Apex and Oracle. I am new to both.
    To POST instead of GET is not as easy as it sounds.
    What I did was open a new window where I outputted a dynamically created form. I would think that you would do that by using the pl/sql web toolkit to call a procedure and output the form using htp.p. You may also be able to do it with Apex (I think they are built using the same tech).
    Basically, your proc would look something like this:
    htp.p('<html><head>');
    htp.p('</head><body onload="document.FORM.submit();">');
    htp.p('<form name="FORM" method="POST" action="www.UrlToPostTo.com" >');
    htp.p('<input name="PostVar" type="hidden" value="' || MyValueToPost || '">');
    htp.p('</form></body></html>');
    So, it creates a html page with a form. When the page loads, it runs the javascript to submit the form to the other site. You can add in as many post items as you need. I marked them as hidden so that the user only sees a blank page briefly before the form is submitted.
    I am sure there is more to it than that, but it gives the general outline of how to post to another site dynamically. Hopefully someone else can fill in the rest.

  • Transaction Launcher : How to get return parameters from an external URL

    Hello,
    We need to launch an external URL in the Web Client UI. After the URL is launched, the user does some processing which results in some output values. These value have to be passed back to the Web Client UI and become a part of the quotation he is creating.
    We are able to launch the URL using the Transaction Launcher. But we are not able to find a way to get the output values from the external URL to the Web client UI.
    Please suggest any approach for this. It is OK even if we need to use an intermediate BSP to launch the external URL.
    Regards
    Ajay

    hi ajay
    I had a similar requirement , when the user clicks on button I want to launch the  External URL , can you please let me know how to launch the external url when the user cliks on button
    Thanks & Regards
    madhu

  • How do you remove back up data from the memory storage? my storage data states that i have over 80gb of data used for back ups and i dont know why as i use a external hard drive as a time machine .now my 250gb flash storage is nearly full

    how do you remove back up data from the memory storage? my storage data states that i have over 80gb of data used for back ups and i dont know why as i use a external hard drive as a time machine .now my 250gb flash storage is nearly full.. HELP!

    When Time Machine backs up a portable Mac, some of the free space will be used to make local snapshots, which are backup copies of recently deleted files. The space occupied by local snapshots is reported as available by the Finder, and should be considered as such. In the Storage display of System Information, local snapshots are shown as  Backups. The snapshots are automatically deleted when they expire or when free space falls below a certain level. You ordinarily don't need to, and should not, delete local snapshots yourself. If you followed bad advice to disable local snapshots by running a shell command, you may have ended up with a lot of data in the Other category. Ask for instructions in that case.
    See this support article for some simple ways to free up storage space.

  • Why do I need to catch this exception?

    Hello all
    This is a question about exception handling. I have to build a diary application that lets you save reminders on particular dates using xml. Just to make it a little tougher, I was not allowed to use the Calendar class. This is the code I wrote:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    import java.text.*; 
    import javax.xml.parsers.*;
    import org.xml.sax.*;
    import java.io.*;     
    import org.w3c.dom.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.*;
    import javax.xml.transform.stream.*;                                                                                                                                                                                                                         
    import static java.lang.Math.*;
    public class CalendarAssignment extends JFrame implements ActionListener
         int MonthLength [] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
         public JButton [] days = new JButton[43];
         private JLabel lbl, reminderlbl;
         private JPanel top, grid, remindercenter, reminderbottom;
         private JFrame reminderframe;
         private JTextField year1, reminderinput, dayno;
         private JComboBox months;
         private Container container;
         private JButton fetch, save, cancel;
         private Document doc;
         private File file;
         private Node node;
         private String year, month, day;
              public static void main( String[] args ) {
                   CalendarAssignment c = new CalendarAssignment( );
                   c.setSize( 400, 300 );
                   c.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
                   c.show( );
              public CalendarAssignment( ) {
                   int CurrentYear, CurrentMonth;
                   String YearString, MonthString, Now;
                   Date today;
                   container = getContentPane( );
                   container.setLayout( new BorderLayout( ) );
                   SimpleDateFormat DateFormatter;
                   DateFormatter = new SimpleDateFormat( "MM.yyyy" );
                   today = new Date( );
                   Now = DateFormatter.format( today );
                   MonthString = Now.substring( 0,2 );
                   YearString = Now.substring( 3,7 );
                   CurrentMonth = Integer.valueOf( MonthString );
                   CurrentYear = Integer.valueOf( YearString );
                   top = new JPanel( );
                        String [] items = { "January", "February", "March", "April", "May", "June",
                                      "July", "August", "September", "October", "November",
                                      "December" };
                        months = new JComboBox( items );
                        months.setEditable( false );
                        months.setSelectedIndex( CurrentMonth - 1 );          
                        year1 = new JTextField( );
                        year1.setText( YearString );
                        year1.setEditable( true );
                        year1.setHorizontalAlignment( year1.CENTER );
                        fetch = new JButton( "Fetch Month" );
                        fetch.addActionListener( this );
                        top.setLayout( new GridLayout( 1, 3, 20, 0 ) );
                        top.add( months );
                        top.add( year1 );
                        top.add( fetch );
                   grid = new JPanel( );
                        grid.setLayout( new GridLayout( 7, 7, 0, 0 ) );
                        String [] week = { "Mon", "Tue", "Wed", "Thur", "Fri", "Sat", "Sun" };
                        for ( int a = 0; a < 7; a ++ ) {
                                  JLabel lbl = new JLabel( week[a], JLabel.CENTER );
                                  grid.add( lbl );
                        for ( int i = 0; i < 42; i ++ ) {
                                  days[i] = new JButton( );
                                  grid.add( days[i] );
                                  days.addActionListener( this );
                        DrawCalendar( CurrentMonth, CurrentYear );
                        container.add( top, BorderLayout.NORTH );
                        container.add( grid, BorderLayout.CENTER );
              private void DrawCalendar( int SelectMonth, int SelectYear ) {
                        int DisplayMonthLength, Buttons;
                        String ButtonID = "";
                        int OffSet = MonthStart( SelectMonth, SelectYear );
                        DisplayMonthLength = MonthLength [SelectMonth - 1];
                        if ( SelectMonth == 2 )
                             DisplayMonthLength += LeapYear( SelectYear );
                        for ( Buttons = 1; Buttons < 43; Buttons ++ ) {
                             if ( ( Buttons <= OffSet ) || ( Buttons > ( DisplayMonthLength + OffSet ) ) ) {
                                  ButtonID = "";
                                  days[Buttons-1].setEnabled( false );
                             else {
                                  ButtonID = Integer.toString( Buttons - OffSet );
                                  days[Buttons-1].setEnabled( true );
                        days[Buttons-1].setLabel( ButtonID );
                        grid.add( days[Buttons-1] );
              private int LeapYear( int year ) {
                        int FourHundred, OneHundred, Fourth;
                        FourHundred = year % 400;
                        OneHundred = year % 100;
                        Fourth = year % 4;
                        if( ( ( FourHundred == 0 ) ) || ( ( OneHundred != 0 ) && ( Fourth == 0 ) ) )
                             return ( 1 );
                        else
                             return ( 0 );
              private int MonthStart( int Month, int Year ) {
                        int OffSet, LastMonths, BeforeOrAfter, Years;
                        int AllDays = 0;
                        int YearDays = 365;
                        int YearMonths = 12;
                        BeforeOrAfter = Year - 2006;
                        Years = abs( BeforeOrAfter );
                        if( BeforeOrAfter != 0 )
                             BeforeOrAfter = BeforeOrAfter / Years;
                        switch( BeforeOrAfter ) {
                             case 1:
                                  for( int a = 2006; a < Year; a ++ ) {
                                       AllDays += YearDays + LeapYear( a );
                                  AllDays += LastMonthsCalc( Month, Year );
                             break;
                             case -1:
                                  for( int a = 2005; a > Year; a -- ) {
                                       AllDays += YearDays + LeapYear( a );
                                  for( LastMonths = YearMonths; LastMonths >= Month; LastMonths -- ) {
                                       AllDays += MonthLength[LastMonths - 1];
                                       if( LastMonths == 2 )
                                            AllDays += LeapYear( Year );
                             break;
                             default:
                                  if( Month > 1 )
                                       AllDays += ( LastMonthsCalc( Month, Year ) );
                        OffSet = AllDays % 7;
                        if( BeforeOrAfter ==( -1 ) )
                             return( 6 - OffSet );
                        else if( OffSet > 0 )
                             return( OffSet - 1 );
                        else
                             return( 6 );
              private int LastMonthsCalc( int Month, int Year ) {
                        int Counter;
                        int days = 0;
                        for( Counter = 1; Counter < Month; Counter ++ ) {
                             days += MonthLength[Counter - 1];
                             if( Counter == 2 )
                                  days += LeapYear( Year );
                        return( days );
              public void CreateReminder( String buttonID, String yearID, String monthID ) {
                        reminderframe = new JFrame( );
                        reminderlbl = new JLabel( );
                        reminderframe.setLayout( new GridLayout( 2, 1, 0, 0 ) );
                        remindercenter = new JPanel( );
                             reminderlbl = new JLabel( "Please type in reminder to be saved for " + buttonID + " " + monthID + " " + yearID + ":", JLabel.CENTER );
                             reminderinput = new JTextField( 30 );
                             reminderinput.setHorizontalAlignment( reminderinput.CENTER );
                             reminderinput.setEditable( true );
                             remindercenter.setLayout( new GridLayout( 2, 1, 0, 0 ) );
                             remindercenter.add( reminderlbl );
                             remindercenter.add( reminderinput );
                        reminderbottom = new JPanel( );
                             save = new JButton( "Save" );
                             save.addActionListener( this );
                             cancel = new JButton( "Cancel" );
                             cancel.addActionListener( this );
                             dayno = new JTextField( buttonID );
                             dayno.setEditable( false );
                             dayno.setEnabled( false );
                             dayno.show( false );
                             reminderbottom.setLayout( new FlowLayout( ) );
                             reminderbottom.add( save );
                             reminderbottom.add( cancel );
                             reminderbottom.add( dayno );
                        reminderframe.setSize( 500, 75 );
                        reminderframe.add( remindercenter );
                        reminderframe.add( reminderbottom );
                        reminderframe.pack( );
                        reminderframe.show( );
              public void SaveReminder( String dayID, String yearID, String monthID ) throws Exception {
                        file = new File( "Diary.xml" );
                        doc = DocumentBuilderFactory.newInstance( ).newDocumentBuilder( ).parse( file.toURL( ).toString( ) );
                        String year = yearID;
                        String month = monthID;
                        String day = dayID;
                        //System.out.println( year );
                        //System.out.println( month );
                        //System.out.println( day );
                        CreateEntry( doc.getDocumentElement( ) );
                        writeXmlFile( );
              public boolean CreateEntry( Node node ) {
                        Node searchNode;
                        searchNode = getYear( node );
                        if( searchNode == null ) {
                             Element newNode = doc.createElement( "Year" );
                             searchNode = node.appendChild( newNode );
                             newNode.setAttribute( "Id", year );
                        node = searchNode;
                        searchNode = getMonth( node );
                        if( searchNode == null ) {
                             Element newNode = doc.createElement( "Month" );
                             searchNode = node.appendChild( newNode );
                             newNode.setAttribute( "Id", month );
                        node = searchNode;
                        searchNode = getDay( node );
                        if( searchNode == null ) {
                             Element newNode = doc.createElement( "Day" );
                             searchNode = node.appendChild( newNode );
                             newNode.setAttribute( "Id", day );
                        node = searchNode;
                        String entry = reminderinput.getText( );
                        Node textNode = doc.createTextNode( entry );
                        node.appendChild( textNode );
                        return true;
              private Node getYear( Node node ) {
                        node = node.getFirstChild( );
                        while( node != null ) {
                             if(node.getNodeName( ).equals( "Year" ) && String.valueOf( node.getAttributes( ).item( 0 ).getNodeValue( ) ) == year )
                                  return node;
                                  node = node.getNextSibling( );                    
                        return null;
              private Node getMonth( Node node ) {
                        node = node.getFirstChild( );
                        while( node != null ) {
                             if( node.getNodeName( ).equals( "Month" ) && String.valueOf( node.getAttributes( ).item( 0 ).getNodeValue( ) ) == month )
                                  return node;
                                  node = node.getNextSibling( );                    
                        return null;
              private Node getDay( Node node ) {
                        node = node.getFirstChild( );
                        while( node != null ) {
                             if( node.getNodeName( ).equals( "Day" ) && String.valueOf( node.getAttributes( ).item( 0 ).getNodeValue( ) ) == day )
                                  return node;
                                  node = node.getNextSibling( );                    
                        return null;
              private void writeXmlFile( ) throws Exception {
                   Source source = new DOMSource( doc );
                        Result result = new StreamResult( file );
                   Transformer xformer = TransformerFactory.newInstance( ).newTransformer( );
                   xformer.setOutputProperty( OutputKeys.INDENT,"yes" );
                   xformer.setOutputProperty( OutputKeys.DOCTYPE_SYSTEM,"Diary.dtd" );
                   xformer.transform( source, result );
              public void actionPerformed( ActionEvent e ) {
                        String IDButton = e.getActionCommand( );
                        String IDYear = year1.getText( );
                        Object IDMonthObj = months.getSelectedItem( );
                        if( e.getSource( ) == fetch ) {
                             String YearText = year1.getText( );
                             int YearNumber = Integer.valueOf( YearText );
                             int MonthsIndex = months.getSelectedIndex( ) + 1;
                             DrawCalendar( MonthsIndex, YearNumber );
                        else if( e.getSource( ) == cancel ) {
                             reminderframe.hide( );
                        else if( e.getSource( ) == save ) {
                             String IDDay = dayno.getText( );
                             String IDMonth = String.valueOf( IDMonthObj );
                             SaveReminder( IDDay, IDYear, IDMonth );
                        else {
                             String IDMonth = String.valueOf( IDMonthObj );
                             Toolkit.getDefaultToolkit( ).beep( );
                             int n = JOptionPane.showConfirmDialog( null, "Set reminder on this date?", "Question", JOptionPane.YES_NO_OPTION );
                             if( n == JOptionPane.YES_OPTION ) {
                                  CreateReminder( IDButton, IDYear, IDMonth );
    If you compile it, you will realise that I get an error about exception handling. My lecturer gave me an example code of how to do the same thing without using a GUI:
    import javax.xml.parsers.*;
    import org.xml.sax.*;
    import java.io.*;
    import java.util.*;
    import org.w3c.dom.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.*;
    import javax.xml.transform.stream.*;
    public class CallDOM
         Document doc;
         File file;
         Scanner input;
         int year, month, day;
         String currentYear, currentMonth;
         public static void main(String args[]) throws Exception
              CallDOM cd=new CallDOM();          
         CallDOM() throws Exception
              file=new File("Diary.xml");
              //create DOM from file
              doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file.toURL().toString());
              input=new Scanner(System.in);
              System.out.println("1) Create entry");
              System.out.println("2) Read entry");
              System.out.println("3) Show Diary");
              System.out.println("4) Quit");
              int choice=input.nextInt();
              while(choice!=4)
                   switch(choice)
                        case 1: GetDate();CreateEntry(doc.getDocumentElement());break;
                        case 2: GetDate();ReadEntry(doc.getDocumentElement());break;
                        case 3: ShowDiary(doc.getDocumentElement());
                   System.out.println("1) Create entry");
                   System.out.println("2) Read entry");
                   System.out.println("3) Show Diary");
                   System.out.println("4) Quit");
                   choice=input.nextInt();
              writeXmlFile();
         public void GetDate()
              System.out.println("Enter date (dd mm yyyy)");
              day=input.nextInt();
              month=input.nextInt();
              year=input.nextInt();
         public boolean ReadEntry(Node node)
              node = getYear(node);
              if(node==null) return false;
              node = getMonth(node);
              if(node==null) return false;
              node = getDay(node);
              if(node==null) return false;
              node = node.getFirstChild();
              while(node!=null)
                   System.out.println(node.getNodeValue().trim());     
                   node=node.getNextSibling();
              return true;               
         public boolean CreateEntry(Node node)
              Node searchNode;
              searchNode = getYear(node);
              if(searchNode==null)
                   Element newNode = doc.createElement("Year");
                   searchNode = node.appendChild(newNode);
                   newNode.setAttribute("Id",Integer.toString(year));
              node = searchNode;
              searchNode = getMonth(node);
              if(searchNode==null)
                   Element newNode = doc.createElement("Month");
                   searchNode = node.appendChild(newNode);
                   newNode.setAttribute("Id",Integer.toString(month));
              node = searchNode;
              searchNode = getDay(node);
              if(searchNode==null)
                   Element newNode = doc.createElement("Day");
                   searchNode = node.appendChild(newNode);
                   newNode.setAttribute("Id",Integer.toString(day));
              node = searchNode;
              System.out.println("Enter Text");
              String entry=input.next();
              entry+=input.nextLine();
              Node textNode = doc.createTextNode(entry);
              node.appendChild(textNode);
              return true;               
         public void ShowDiary(Node node)
              Stack<Node> stack=new Stack<Node>();
              Node child;
              stack.push(node);
              while(!stack.empty())
                   node = stack.pop();
                   if(ProcessNode(node))
                        child = node.getLastChild();
                        while(child!=null)
                             stack.push(child);
                             child = child.getPreviousSibling();
         private boolean ProcessNode(Node node)
              if(node.getNodeName().equals("Year"))
                   currentYear=node.getAttributes().item(0).getNodeValue();
              if(node.getNodeName().equals("Month"))
                   currentMonth=node.getAttributes().item(0).getNodeValue();
              if(node.getNodeName().equals("Day"))
                   System.out.print(node.getAttributes().item(0).getNodeValue()+"/"+
                                            currentMonth+"/"+currentYear+": ");
                   node=node.getFirstChild();
                   while(node!=null)
                        System.out.println(node.getNodeValue().trim());
                        node=node.getNextSibling();
                   return false;
              return true;               
         private Node getYear(Node node)
              node=node.getFirstChild();
              while(node!=null)
                   if(node.getNodeName().equals("Year")
                        && Integer.valueOf(node.getAttributes().item(0).getNodeValue())==year)
                             return node;
                   node = node.getNextSibling();                    
              return null;
         private Node getMonth(Node node)
              node=node.getFirstChild();
              while(node!=null)
                   if(node.getNodeName().equals("Month")
                        && Integer.valueOf(node.getAttributes().item(0).getNodeValue())==month)
                        return node;
                   node = node.getNextSibling();                    
              return null;
         private Node getDay(Node node)
              node=node.getFirstChild();
              while(node!=null)
                   if(node.getNodeName().equals("Day")
                        && Integer.valueOf(node.getAttributes().item(0).getNodeValue())==day)
                        return node;
                   node = node.getNextSibling();                    
              return null;
         private void writeXmlFile() throws Exception
            Source source = new DOMSource(doc);
            Result result = new StreamResult(file);
            Transformer xformer = TransformerFactory.newInstance().newTransformer();
            xformer.setOutputProperty(OutputKeys.INDENT,"yes");
            xformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"Diary.dtd");
            xformer.transform(source, result);
    }My question is, why does the exceptions in the example code not need to be caught? And why do I have to catch the exceptions in my code? Several exceptions are thrown in the example code, but there is no catch statement.
    Thanks for any advice!!

    Since your question didn't come with any relevant details, and since you have huge steaming piles of irrelevant code, all I can give is a general answer to "Why do I need to catch this exception?"
    [url http://java.sun.com/docs/books/tutorial/essential/exceptions/index.html]Exception tutorial at http://java.sun.com/docs/books/tutorial/essential/exceptions/index.html
    Here's a quick overview of exceptions:
    The base class for all exceptions is Throwable. Java provides Exception and Error that extend Throwable. RuntimeException (and many others) extend Exception.
    RuntimeException and its descendants, and Error and its descendants, are called unchecked exceptions. Everything else is a checked exception.
    If your method, or any method it calls, can throw a checked exception, then your method must either catch that exception, or declare that your method throws that exception. This way, when I call your method, I know at compile time what can possibly go wrong and I can decide whether to handle it or just bubble it up to my caller. Catching a given exception also catches all that exception's descendants. Declaring that you throw a given exception means that you might throw that exception or any of its descendants.
    Unchecked exceptions (RuntimeException, Error, and their descendants) are not subject to those restrictions. Any method can throw any unchecked exception at any time without declaring it. This is because unchecked exceptions are either the sign of a coding error (RuntimeException), which is totally preventable and should be fixed rather than handled by the code that encounters it, or a problem in the VM, which in general can not be predicted or handled.

  • What Is, And Why do I need it: ExpressCard/34 Slot?

    In the very near future I will be obtaining a 17" MBP. That's just savvy, except for one minor detail. What is an ExpressCard/34 slot, why do I need one, why would it have been included in this particular size MBP and what can I shove in there?

    The expresscard slot is for expansion purposes. it allows a low cost esata connection to your macbook pro. you can plug an esata adapter in and then use one of many external esata enclosures. "apiotek ec-0003d" costs about 40 bucks and will let you add 2 non-bootable external esata enclosures then can run at 3Gbps. fw800 runs at 800Mbps..
    "OWC esatat sata expressCard/34Adapter" bootable 1 esata adapter is 19 bucks it will let you add 1 esata enclosure at speeds up to 3Gbps.
    so if you get the non bootable one you can add 2 enclosures like "sans digital towerStor Ts2ct". that would be up to 4Tb for each one total of 8tb far faster then fire wire. if you get the bootable 1 esata type you could add 1 external at 4tb. this lets you macbook pro boot from a 4tb external at internal speeds. kind of gives you the ability to make you laptop a real desk top when you want it to be that. Then back to a real lap top by unplugging it. Not trying to sell any of the above items I just happen to use them.
    This option was pulled from iMac's a real drag as iMacs could use more fast enclosures.

  • Why do I need to pass params. to getConnection when using OracleDataSource?

    Hi,
    I've been experimenting with Tomcat 5.5 and using Oracle proxy sessions. After many false starts, I finally have something working, but I have a question about some of the code.
    My setup:
    In <catalina_home>/conf/server.xml I have this section:
    <Context path="/App1" docBase="App1"
    debug="5" reloadable="true" crossContext="true">
    <Resource name="App1ConnectionPool" auth="Container"
    type="oracle.jdbc.pool.OracleDataSource"
    driverClassName="oracle.jdbc.driver.OracleDriver"
    factory="oracle.jdbc.pool.OracleDataSourceFactory"
    url="jdbc:oracle:thin:@127.0.0.1:1521:oddjob"
    username="app1" password="app1" maxActive="20" maxIdle="10"/>
    </Context>
    In my App directory, web.xml has:
    <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>App1ConnectionPool</res-ref-name>
    <res-type>oracle.jdbc.pool.OracleDataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    And finally, my java code:
    package web;
    import oracle.jdbc.pool.OracleDataSource;
    import oracle.jdbc.driver.OracleConnection;
    import javax.naming.*;
    import java.sql.SQLException;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.Properties;
    public class ConnectionPool {
    String message = "Not Connected";
    public void init() {
    OracleConnection conn = null;
    ResultSet rst = null;
    Statement stmt = null;
    try {
    Context initContext = new InitialContext();
    Context envContext = (Context) initContext.lookup("java:/comp/env");
    OracleDataSource ds = (OracleDataSource) envContext.lookup("App1ConnectionPool");
    message = "Here.";
    if (envContext == null)
    throw new Exception("Error: No Context");
    if (ds == null)
    throw new Exception("Error: No DataSource");
    if (ds != null) {
    message = "Trying to connect...";
    conn = (OracleConnection ) ds.getConnection("app1","app1");
    Properties prop = new Properties();
    prop.put("PROXY_USER_NAME", "xxx/yyy");
    if (conn != null) {
    message = "Got Connection " + conn.toString() + ", ";
              conn.openProxySession(OracleConnection.PROXYTYPE_USER_NAME,prop);
    stmt = conn.createStatement();
    //rst = stmt.executeQuery("SELECT 'Success obtaining connection' FROM DUAL");
    rst = stmt.executeQuery("SELECT count(*) from sch_header");
    if (rst.next()) {
    message = "# of NJ schools: " + rst.getString(1);
    rst.close();
    rst = null;
    stmt.close();
    stmt = null;
    conn.close(); // Return to connection pool
    conn = null; // Make sure we don't close it twice
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    // Always make sure result sets and statements are closed,
    // and the connection is returned to the pool
    if (rst != null) {
    try {
    rst.close();
    } catch (SQLException e) {
    rst = null;
    if (stmt != null) {
    try {
    stmt.close();
    } catch (SQLException e) {
    stmt = null;
    if (conn != null) {
    try {
    conn.close();
    } catch (SQLException e) {
    conn = null;
    public String getMessage() {
    return message;
    My question concerns this line of code:
    conn = (OracleConnection ) ds.getConnection("app1","app1");
    Why do I need to pass in the user name/password? Other examples, that I see simply have:
    conn = (OracleConnection ) ds.getConnection();
    But when I use this code, I get the following error:
    java.sql.SQLException: invalid arguments in call
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
         at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:236)
         at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
         at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
         at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
         at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
         at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:297)
         at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:221)
         at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:165)
         at web.ConnectionPool.init(ConnectionPool.java:32)
    ... more follows, but I trimmed to keep posting shorter :-)
    Is there anyway that I can avoid having to pass the user/password to getConnection()? It seems that I should be able to control the user/password used to establish the connection pool directly in the server.xml file and not have to supply it again in my java code. In earlier experiments when I was using "import java.sql.*" and using it's DataSource, I can use getConnection() without having to pass user/password, but then the Oracle Proxy methods don't work.
    I'm a java newbie so I guess that I should be happy that I finally figured out how to get proxy connections working. However it seems that I am missing something and I want this code to be as clean as possible.
    If anyone can point me to a better method of using connection pools and proxy sessions, I would appreciate it.
    Thanks,
    Alan

    Hi,
    Thanks for the replies.
    Avi, I'm not really sure what you are getting at with the setConnectionProperties. I looked at the javadoc and saw that I can specify user/password, but since I'm using a connection pool, shouldn't my Datasource already have that information?
    Maro, your comment about not having set the user/password for the Datasource is interesting. Are you referring to setting it in the server.xml configuration file? As you can see I did specify it in addition to setting the URL. In my code example, I'm not having to respecify the URL, but maybe I have a typo in my config file that is causing the username/password not to be read properly??
    The other weird thing is that I would have expected to see a pool of connections for user App1 in V$SESSION, but I see nothing. If I use a utility to repeatedly call a JSP page that makes use of my java example, then I do see v$session contain brief sessions for App1 and ADAVEY (proxy). The response time of the JSP seems much quicker than I would have expected if there wasn't some sort of physical connection already established though. Maybe this is just more evidence of not having my server.xml configured properly?
    Thanks.

Maybe you are looking for

  • Solaris 10 x86 Jumpstart unassisted install

    How do you get a Solaris 10 x86 jumpstart to actually work?!?! Everytime I try to jump an X4500 it will go into an assisted solaris install. It reads my sysidcfg and the majority of my profile. But I have to sit and manually enter the partition infor

  • File Browse defaults

    Is it possible to set a default path for an item defined as 'File Browse'. I tried the obvious of typing in the default path in the 'Default' section on the Item definition, but it didn't display. Suggestions...

  • Having issues with my external hard drive on 6th gen Airport Extreme

    I recently upgraded from a 5th gen to a 6th gen AEBS.  I'm having several issues with it and my 10.8.4 Macs. When I try to mount the self-powered external drive, which appeared to work well with the 5th gen, the disk will often become unreachable.  T

  • Can you make a black interface in Interface Builder

    I have all the Parts for a black interface and If your willing to help me make one please give me your email and I will show you what I have got at the Moment... I do know how to make a custom button, but I'm still struggling on this! I got the Parts

  • Black Screen with a live cursor and Please Wait Freeze

    So after having my computer remove internet functionality when I did some HP updates I System restored back before them fixing the issue. Now though, it continues to give me Please Wait then freezes for about 6-8 minutes, and it will finally go to th