DR server maintainance.

Hi,
Can anybody give me some idea regarding the maintainance of DR server, especially how to move the archive logs from PRD server to the DR server in UNIX environment?
Thank You
Regards,
Amit.

Hi Amit,
You will find several SAP notes that give you detailed description on dataguard setup and configuration for disaster recovery in UNIX enviroment.
To move the archive log files, you can move them manually or let dataguard do it for you. You have a choice of compressing it before moving it across (create a compress pipe) to the DR site.
Cheers,
Nisch

Similar Messages

  • No Web server maintained for the presentation of log. system

    Hi Banu/All,
    I got the following error message while executing jump target to R/3 Transaction ME2N.
    <i>Messages:
    No Web server maintained for the presentation of log. system DDVR3110
    Jump target cannot be executed
    An error occurred with the report to report interface during the jump</i>
    Banu, I have gone through the following link which u have given in the previous queries, but can u please tell me how to install ITS for the target system? or how to know/whom to ask regarding the ITS installation? is it BASIS People?
    http://help.sap.com/saphelp_nw04/helpdata/en/61/b8c63ce4b79679e10000000a114084/content.htm
    Apart from ITS, what other settings have to be done in this kind of scenarios?
    Can U please eloborate on this topic, please?
    Thanks & Regards...
    Ganesh
    Message was edited by:
            Ganesh

    Hello Ganesh,
    Did you have the chance to solve it?.
    I have the same issue.
    Thanks in advance.
    Facundo Romero.

  • Query jump: No Web server maintained for the presentation of log. system

    Hello,
    I have created a query jump in the RSBBS transaction to go in R/3 through a Bex Query. When i choose the jump in the query anayzer I have the error message:
    <b>No Web server maintained for the presentation of log. system.</b>
    Do you have ever had this message? what is the solution? why do my bex anayzer use a web interface to connect in R/3?
    Thanks a lot!
    Julien

    Hi Arun,
    Yes,  the AIE 300 SYSTEM is R/3 system.  If you think this could be a basis problem please let me know and if you can a step by step solution or something to bring to the basis. 
    Thanks,
    Diego

  • Will Lion server update from SL server maintain wiki contents?

    I would like to know if the upgrade to lion server from SL server will erase or make unusable the contents of my Wikis, blogs and websites.  What would  I have to do to preserve them as functioning services if I upgrade to Lion Server?

    Thanks, I don't have a good handle on this. Here is the tail of named.log while problem was happening and even during the start. Perhaps, it is running, but server admin doesn't think so and lots of other services are hung or turn themselves off (web, wiki, profile manager ...)
    03-Aug-2011 21:54:43.991 createfetch: local SOA
    03-Aug-2011 21:56:36.762 createfetch: local SOA
    03-Aug-2011 21:56:36.794 decrement_reference: delete from rbt: 0x10d8727e0 clients.l.google.com
    03-Aug-2011 21:57:09.537 createfetch: safebrowsing.clients.google.com A
    03-Aug-2011 21:57:09.574 createfetch: clients.l.google.com A
    03-Aug-2011 21:57:09.601 decrement_reference: delete from rbt: 0x10d872780 clients1.google.com
    03-Aug-2011 21:57:11.769 createfetch: safebrowsing.cache.l.google.com A
    03-Aug-2011 21:57:55.591 createfetch: ytstatic.l.google.com A
    03-Aug-2011 21:57:55.631 decrement_reference: delete from rbt: 0x10d639738 ssl.gstatic.com
    There isn't much here to look at.
    changeip -checkhostname does work when this occurs.
    Also, open directory stays running.
    Thanks again!

  • Tomcat : Hlow to run more than 1 instance of tomcat server on same machine?

    Hi,
    How to run more than 1 instance of tomcat server on the same machine.
    I use tomcat 5.5. ,updated port number for second instance and tried to run,it takes the same old port number .No batch file available with this version to update the home directory to second instance to run the second server..
    How to work on clustering and load balancing on tomcat server?
    Any inputs?
    Thanks in advance..
    Ani

    Anitha123 wrote:
    We have only 1 dedicated server maintained by third party for hosting..
    If are only getting your site hosted, then, normally, the host would handle clustering (to your sepcifications, of course, but it is normally the hosts responsibility).
    If i need to implement clustering and load balancing for tomcat server then do we need to go for 2 different servers for production environment?
    Yes, you would need two, or more, servers.
    Also please guide me on how to implement clustering and load balancing for tomcat server by running 2 instances on 2 different machine? I'm a newbie to it..
    It should have no (or at least minimal) impact on the code (as long as you are using beans, sessions, and the other components properly). It is handled by the web container (by the tomcat in this case). The tomcat documentation should show how to set it up (if it supports it all, I don't know, we don't have Tomcat at work, and at home I use only a single).

  • IPhone 2.0 doesn't work with my exchange server

    My tech support guys have been working on my iPhone for an entire day and couldn't get it to work with the server. They are telling me that the phone isn't compatible with the exchange server and it would require an entire overhaul of our server and reconfiguration to get it to work. I thought the new iPhone was supposed to be so easy to use. I am so ready to ditch my blackberry and so very disappointed that I can't get the iPhone to work with our server. Macintosh support was completely useless to help figure out this problem- as they said they don't offer support to third party software- yet this phone is supposed to work with the Microsoft Exchange Server?! Can anyone offer any help?
    Below is the explanation my tech support gave me:
    I wanted to reach out to you to update you with your iPhone working on the peacock exchange. After spending considerable time with both AT&T and Macintosh, getting the phone to operate with exchange as easy as Macintosh advertises, has ended in a failure. Your phone device itself, is properly updated and has all the correct settings. Where the problem lies for you is on the Microsoft server end. This is where the server will have to have additional software and updates installed which would effect and change the peacock network environment. This can be potentially accomplished, however it will need to be evaluated for the additional costs and potential risks to the server and environment. That’s why BlackBerry is so popular with business networks, because it does not affect the Microsoft Exchange mail services in any shape or form. Blackberry runs on its own server service which acts as the bridge to communicate with the Microsoft service.
    AT&T was very helpful and tried everything they could to aid us. Macintosh on the other hand, was not very helpful. After a few unsuccessful attempts, Macintosh just came out and said that they do not support 3rd party software (i.e Microsoft Products). You can give Macintosh a try, and see if you end with better results.

    wcadesign wrote:
    Below is the explanation my tech support gave me:
    I wanted to reach out to you to update you with your iPhone working on the peacock exchange. After spending considerable time with both AT&T and Macintosh, getting the phone to operate with exchange as easy as Macintosh advertises, has ended in a failure. Your phone device itself, is properly updated and has all the correct settings. Where the problem lies for you is on the Microsoft server end. This is where the server will have to have additional software and updates installed which would effect and change the peacock network environment. This can be potentially accomplished, however it will need to be evaluated for the additional costs and potential risks to the server and environment. That’s why BlackBerry is so popular with business networks, because it does not affect the Microsoft Exchange mail services in any shape or form. Blackberry runs on its own server service which acts as the bridge to communicate with the Microsoft service.
    Actually Blackberry has two options, one where they pull from your server and then push it to your phone as described. Alternatively you can install their software on your server to relay. Both require additional services, software and fees. Instead the iPhone uses the ActiveSync included in the Exchange server, which is the same protocol used to communicate with Windows Mobile based devices.
    AT&T was very helpful and tried everything they could to aid us. Macintosh on the other hand, was not very helpful. After a few unsuccessful attempts, Macintosh just came out and said that they do not support 3rd party software (i.e Microsoft Products). You can give Macintosh a try, and see if you end with better results.
    Essentially Apple does not configure Microsoft Exchange for your admins. We do provide a list of what versions of ActiveSync and which ActiveSync features we support. However, ActiveSync is part of the Microsoft Exchange server maintained and configured by your Exchange server admins.
    Hope this helps,
    Nathan C.

  • Web Server Hacked

    When I got a call from a potential renter asking if my web address was correct I wasn't too concerned until I went to my web site and saw that my home page had been replaced with a black page with big bold red letter that said : "F**ked by 7sign".  The stars are my input the hacker used letters.
    I've been running Snow Leopard on my Mac Mini Server for just shy of 3 years and this is the first intrusion I've experienced.  Very distressing.
    I called Apple Care as I still am covered under the AppleCare Protection plan for another couple of weeks.  They were very solicitous but told me they could not help and they recommended I change all my passwords and contact a network specialist.
    With that lack of help I decided to investigate myself.  Here's what I found:
    In searching my server I found that for 2 web sites that I host the "index.htm" files had been replaced, a txt file "Hei7.asp;.txt" had been added to my web folder, a text file "0bito.txt" had also been added.  there also were some files beginning with "x." that had been added. 
    I checked Workgroup Manager and found accounts that I had not created.
    I checked FTP and found Users I had not authorized with full control for read and write. Permissions I had not granted.
    I check the logs based upon the date of the new "index.htm" file and found a couple of entries leading to an IP address that I couldn't track down.
    I did a lot of reading on the web.
    I deleted all the files that I thought were inserted.  I brought back my index.htm files from my TimeMachine backup, I then changed permissions on those files and locked them, I deleted all unknown users from Workgroup manager, I disabled WebDav, I deleted all unknown users from ftp.  I did this over a two day period.  The first day after I found the attack some of the files I deleted were reinstalled.  After I completed all of the above I've been free for a couple of days.  I'm not running Firewall, I think that's my next step.
    I'd love some advise about other steps I should take. 

    It sounds like you're running a web server on that Mac, and that the web server got hacked... the version of Safari on the affected machine would not have any role in that, unless you are possibly using Safari to visit websites on your server machine, which would not be advisable. I think that it's unlikely this hack would have occurred through a Safari vulnerability, and I don't actually think there's a vulnerability that would allow this sort of thing in that version of Safari anyway.
    Most likely, the access was accomplished through some service you have open internet-wide on your Mac, and that is not properly secured. For example, if you're running an FTP server with weak passwords, it could have been hacked through a brute force attack. You are also running an insecure version of Apache, if you're running the version that comes preinstalled on Snow Leopard. There are many, many ways a web server can be hacked, depending on the software, configuration, etc.
    Honestly, I would advise that you don't try to host websites on your Mac. Someone with security expertise could secure it properly, but someone who doesn't have that experience really shouldn't be running a web server. It doesn't cost that much for basic web hosting on a professional web host (I've seen as little as $5/month, plus the domain name registration), and then you have support as well as a server maintained securely by experts.

  • SAP PI 7.0 INTEGRATION SERVER ERROR

    Hi,
               When i am working with the Business Systems in SLD PI 7.0 I am unable to see Integration Server. It was displaying INTEGRATION SERVER as NONE. How to connect to the Integration server in SLD.

    Hi,
      Try these,
    1) Create a business system in SLD with role as Integration Server->Give the pipeline URL as that of ur PI i.e http://<host>:<port>/sap/xi/engine/?type=entry
      Then assign this as integration server to other business sytem whose roll will Aplication System.
    2) In PI -> sxmb_adm-> integration engine configuration-> corresponding integration server maintained or not.
    3) In ECC -> sxmb_adm-> integration engine configuration
    maintain role of business system as "LOC Application system" and
    Corresponding integration server as "dest://<RFC destination for XI>" or
    "http://<host>:<port>/sap/xi/engine?type=entry"
    4) Cross check the RFC Connection
    TCP/IP - LCRSAPRFC & SAPSLDAPI
    HTTP Connection to ABAP System.
    Regds,
    Pinangshuk.

  • InBuilt Apache Web Server v2.0.58 on Solaris 10

    Hi,
    We are working on a custom application which works with the inbuilt Apache Web Server on the Sun Solaris platform. Here are the details of the versions of the various components involved:
    Apache Web Server: Version 2.0.58
    Platform: SunOS 5.10 Generic_127111-03
    Our application is in the form of a shared library(.so binary) which is loaded into the Apache Web Server by mentioning the following directive in the Apache Web Server's configuration file (httpd.conf):
    LoadModule at_module "/var/apache2/logs/sample/sample.so"
    Where, sample.so is our application's binary
    And at_module is the name of the module.
    Problem details:
    For each request to the Apache Web server, the server maintains a table of type "apr_table_t" which contains the header environment from the request. There is a structure "request_rec" maintained in the httpd.h file:
    /** A structure that represents the current request */
    struct request_rec {
    /** The pool associated with the request */
    apr_pool_t *pool;
    /** Request method (e.g. GET, HEAD, POST, etc.) */
    const char *method;
    /** MIME header environment from the request */
    apr_table_t *headers_in;
    In our case, when we try to retrieve the address of "headers_in", we get a NULL Value. Please refer to the code for "sample-apache.cpp" program. Here it goes:
    ** Sample Program acting as a loadable Apache module.
    ** Overview:
    ** This sample program contains the necessary methods to make the program act as a module which can be loaded into the Apache ** Web Server. This program contains skeleton code which is necessary for any module which needs to be loaded into the Apache ** Web Server.
    ** Usage:
    ** 1) Compile and link this program to create a shared library.
    ** Compilation step:
    ** /opt/SUNWspro/bin/CC -c -o sample.o -I<Path to your include directory for Apache API's> sample-apache.cpp
    ** Link step:
    ** /opt/SUNWspro/bin/CC -G -compat=5 -mt -M map.SunOS -o sample.so sample.o -lsocket -lnsl -lpthread -ldl -lposix4 -lCstd ** -lCrun -lm -lw -lthread -lcx -lc
    ** 2) The sample program creates a module named "at_module" which can then be loaded in the Apache Web Server's configuration ** file, httpd.conf in the form of a configuration directive as shown below:
    ** LoadModule at_module "<Location of the shared library created from this sample program>"
    #include "httpd.h"
    #include "http_config.h"
    #include "http_request.h"
    #include "http_log.h"
    static const char s_szInputFilterName[] = "INPUTFILTER";
    extern "C" module at_module;
    typedef struct
         int Enabled;
         char *szConfigFile;  
         apr_array_header_t *input_filters;
    } server_config_struct;
    extern "C" apr_status_t ChildExit(void *p);
    extern "C" apr_status_t ParentExit(void *p);
    extern "C" int Init(apr_pool_t p, apr_pool_t pLogPool, apr_pool_t pTempPool, server_rec s)
    void *data;
    const char *user_data_key = "init_module";
    apr_pool_userdata_get(&data, user_data_key, s->process->pool);
    if(!data)
              apr_pool_userdata_set((const void *) 1, user_data_key, apr_pool_cleanup_null, s->process->pool);
    else
              server_config_struct pConfig = (server_config_struct ) ap_get_module_config(s->module_config, &at_module);
              apr_pool_cleanup_register(p, s, ParentExit, apr_pool_cleanup_null);
              ap_log_error(APLOG_MARK, APLOG_INFO, 0, s, "Exit callback registered.");
              fflush(NULL);
    return OK;
    extern "C" void ChildInit(apr_pool_t p, server_rec s)
         apr_pool_cleanup_register(p, s, ChildExit, apr_pool_cleanup_null);
         return;
    extern "C" apr_status_t ChildExit(void *s)
         return APR_SUCCESS;
    extern "C" apr_status_t ParentExit(void *s)
         return APR_SUCCESS;
    extern "C" int access_checker(request_rec *r)
         FILE * fp;
         fp = fopen("/var/apache2/logs/sample.txt", "a");
         fprintf(fp, "\n r->headers_in = %u, r->method = %s", r->headers_in, r->method);
         fclose(fp);
         return OK;
    extern "C" apr_status_t input_filter_init(ap_filter_t *f)
         return APR_SUCCESS;
    extern "C" apr_status_t input_filter(ap_filter_t f, apr_bucket_brigade pbbOut,
                                                 ap_input_mode_t mode, apr_read_type_e block,
                                                 apr_off_t readbytes)
         return APR_SUCCESS;
    static void register_hooks(apr_pool_t *p)
         ap_hook_post_config(Init, NULL, NULL, APR_HOOK_MIDDLE);
         ap_hook_child_init(ChildInit,NULL,NULL,APR_HOOK_MIDDLE);
         ap_hook_access_checker(access_checker, NULL, NULL, APR_HOOK_REALLY_LAST);
         ap_register_input_filter(s_szInputFilterName, input_filter, input_filter_init, AP_FTYPE_RESOURCE);
    extern "C" module AP_MODULE_DECLARE_DATA at_module =
    STANDARD20_MODULE_STUFF,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    register_hooks
    //End of sample
    In this program, inside the access_checker() method, we try to retrieve the address of "headers_in" and get that as NULL:
    extern "C" int access_checker(request_rec *r)
    FILE * fp;
    fp = fopen("/var/apache2/logs/sample.txt", "a");
    fprintf(fp, "\n r->headers_in = %u, r->method = %s", r->headers_in, r->method);
    fclose(fp);
    return OK;
    Here is the output of the sample program after accessing the main page of the Web server:
    r->headers_in = 0, r->method = GET
    r->headers_in = 0, r->method = GET
    r->headers_in = 0, r->method = GET
    Though we are able to retrieve one member of the structure request_rec (method), we are not able to retrieve the address of the other member (headers_in).
    Observation:
    We made an interesting observation that when we used the same sample program with the inbuilt Apache 2.0.52 Web Server on Solaris, we were able to successfully retrieve the address of headers_in. Here are the details of the set-up which is working fine:
    Apache Web Server: Version 2.0.52
    Platform : SunOS 5.10 Generic_118822-30
    Thus, there is something different which has happened between the Sun's Solaris Apache Web Server's versions 2.0.52 and 2.0.58 which is making it unable to retrieve the address of the request headers (headers_in) in version 2.0.58.
    Can sombody please help me find out the reson for this difference and let me know if we need to change the way of retrieving the request headers for Solaris Apache 2.0.58.
    Thanks

    Ok, found the problem:
    Do not use this "SSL_RENEGOTIATE_NEVER" as a value for the environment variable:
    NSS_SSL_ENABLE_RENEGOTIATION=SSL_RENEGOTIATE_NEVER;export NSS_SSL_ENABLE_RENEGOTIATION
    instead, use "0":
    NSS_SSL_ENABLE_RENEGOTIATION=0;export NSS_SSL_ENABLE_RENEGOTIATION
    Add that line to your startserv script and it should disable ssl renegotiation permanently.
    Regards,

  • [ADF-11.1.2] taskflow headache on server side

    Hi,
    I have a taskflow which has a page that navigates to another task flow. This task-flow again has page that navigates to third task flow. Third task flow has a page that navigates to forth (and so on..) OR back to first task flow.
    If second page from second task flow has a 'back' button which calls task flow return activity, then it navigates to calling taskflow (i.e. first taskflow) and will appears on browser with the same state before navigating to second task flow. Which means server maintain the stack of task-flow states which helps in task-flow-return activity.
    Assume following scenario where there is a never ending of task-flow calling... and none of page has task flow return activity...
    main-BTF.xml > sub-BTF.xml > sub2-BTF.xml > main-BTF.xml > sub-BTF.xml > ...
    then, in this case, it's a waste for server to maintain the stack of Taskflows.. right ?
    My question is.. is ADF internally have garbage-collection-kind-of functionality where in if there isn't any need to maintain stack, server would simply remove previous states OR if developers can help ADF to remove the stack of states ?

    The solution here is to architect your task flows differently. Instead of having one BTF call the next, instead have one large composite BTF that calls each sub BTF in a chain. This will also give you more flexibility as if you get the order of your BTFs wrong, you can just change their position in the composite BTF.
    CM.

  • What is the function of "Name Server"?

    We have a two server Cluster.  Each server runs a SIA Node with a CMS and all of the typical Servers.
    On Server1, if I look at the Metrics for any of my Servers (except CMS) it looks like this:
       Machine Name:  Server1.domain.com
       Name Server:  Server2.domain.com:6400
    On Server2, it looks like this (all local):
       Machine Name:  Server2.domain.com
       Name Server:  Server2.domain.com:6400
    I'm trying to understand why the servers on Server1 have a Name Server on the other side of the Cluster.  What is this function?  Is this correct?  Does it have anything to do with where the IFR/OFR is running?  Or maybe the sequence on which server starts first?
    The CMS Server on both of my Servers uses the Cluster Name for Name Server.

    Richard,
    If the BO Application is installed on single machine, It could be called standard/standalone installation.
    If the BO Application services scattered across the different system then called "Extended/Distributed Environment". When BO applications are scattered different system is referred as a NODE.
    I guess your BO Application is deployed on 2 nodes, In order to bind two different BO application systems together SAP has given wonderful concept called clustering.
    Cluster will bind 2 or more applications with single (CMS)repository and single IFRS/OFRS destination.
    Whenever you install BO Application, it asks you want to standalone installation or you want to join existing cluster.
    In your environment. The second machine has got BO installed first and first machine has got installed second while installing second time on first machine it had asked to whether you want to join existing cluster then your BO admin has been given second machine.
    Thats why you would able to see second machine nameserver on both machines
    Usually the BO Application servers are distributed based on their category.
    The BO4 platform mainly  categorised as below
    1. Web Application tier (Tomcat): Web Application tier is the tier that hosts server side components to handle user requests from Client tier and pass to Intelligence tier of underlying system for processing.
    2. Intelligence tier (BO services) is heart of Business Objects Enterprise system. It handles user requests, navigates them to appropriate server, maintain security information, audit information and stores report instances. BOE intelligence layer is composed of Central Management Server (CMS), File Repository Servers and Event Server.
    3. Processing tier ( BO services) interacts directly with database and generates reports. Processing layer is composed of  Job Servers,  Web Intelligence processing servers, Crystal processing servers, Dashboard servers.
    As best practices for the better performance, we need to have Distributed deployment( each tier needs to be placed in each server) for better performance.

  • Access Tables in SQL Server

    I was told that SAP on SQL Server maintains a very unique security where someone can not just directly access tables in SQL Server. I was told you need the SAP client in order to access the data stored within the DB. With other systems, normally users such as a DBA  or privileged users would be able to directly log into the database and possibly alter data, whereas this is not the case for SAP on SQL. Can someone help confirm if this is true or not and explain to me how this works.

    Hi Julia:
    You can access data stored in SQL tables using Enterprise Manager or SQL Query Analyzer and you can do in every other database system such as DB2, Informix or Oracle; there are some well-known Cluster tables that information can only be read from inside SAP.
    Regards,
    Federico

  • Problem with inbuilt Solaris Apache Web Server v 2.0.58

    Hi,
    Set-up:
    We are working on a custom application which works with the inbuilt Apache Web Server on the Sun Solaris platform. Here are the details of the versions of the various components involved:
    Apache Web Server: Version 2.0.58
    Platform: SunOS 5.10 Generic_127111-03
    Our application is in the form of a shared library(.so binary) which is loaded into the Apache Web Server by mentioning the following directive in the Apache Web Server's configuration file (httpd.conf).
    LoadModule at_module "/var/apache2/logs/sample/sample.so"
    where, sample.so is our application's binary
    and at_module is the name of the module.
    httpd.conf file has been attached for your reference.
    Attachments:
    httpd.conf - Apache Web Server's configuration file.
    sample-apache.cpp - Sample program which is showing the problem.
    httpd.h - Apache Software Foundation's file which contains the structure "request_rec" that represents the current request.
    Problem summary:
    For each request to the Apache Web server, the server maintains a table of type "apr_table_t" which contains the header environment from the request. There is a structure "request_rec" maintained in the httpd.h file:
    /** A structure that represents the current request */
    struct request_rec {
    /** The pool associated with the request */
    apr_pool_t *pool;
    /** Request method (eg. GET, HEAD, POST, etc.) */
    const char *method;
    /** MIME header environment from the request */
    apr_table_t *headers_in;
    In our case, when we try to retrieve the address of "headers_in", we get a NULL Value. Please refer to the attached "sample-apache.cpp" program. In this program, inside the access_checker() method, we try to retrieve the address of "headers_in" and get that as NULL:
    extern "C" int access_checker(request_rec *r)
         FILE * fp;
         fp = fopen("/var/apache2/logs/sample.txt", "a");
         fprintf(fp, "\n r->headers_in = %u, r->method = %s", r->headers_in, r->method);
         fclose(fp);
         return OK;
    Here is the output of the sample program after accessing the main page of the Web server:
    r->headers_in = 0, r->method = GET
    r->headers_in = 0, r->method = GET
    r->headers_in = 0, r->method = GET
    Though we are able to retrieve one member of the structure request_rec (method), we are not able to retrieve the address of the other member (headers_in).
    Observation:
    We made an interesting observation that when we used the same sample program with the inbuilt Apache 2.0.52 Web Server on Solaris, we were able to successfully retrieve the address of headers_in. Here are the details of the set-up which is working fine:
    Apache Web Server: Version 2.0.52
    Platform : SunOS 5.10 Generic_118822-30
    Thus, there is something different which has happened between the Sun's Solaris Apache Web Server's versions 2.0.52 and 2.0.58 which is making it unable to retrieve the address of the request headers (headers_in).
    I am requesting someone to kindly shed light on this difference and let us know if we need to change the way of retrieving the request headers for Solaris Apache 2.0.58.
    Thanks,
    Atul.

    The only way you can achieve it is by running the web server to listen on port 80
    Please change the port in your httpd.conf file for the webserver and restart it.
    If any other processes are running/using on port 80 on that machine, then please stop them, otherwise you will not be able to achieve your requirement.
    Arun

  • SQL SERVER AGENT DASHBOARD and Monitoring system

    Hi
    we are shopping around for a SQL SERVER management system where users that are not familiar with SQL can monitor Jobs and Job steps. Users will be able to see when a job failed and restart the job (if allowed) or call DBAs if needed based on instructions.
    does anybody know of such a tool that would help operations peform their job?
    thanks
    eddy
    eddy.a

    Sorry mistakenly marked as proposed answer.
    Sql Server 2012 has come with so many nice features which has helped me also to get validated so many stuffs in on place and that is called as Policy Based Management. Here I need to register all required servers and then all applicable policies will be
    validated by executing them on daily or whenever you like.
    Also Central Management Server:
    An instance of SQL Server that is designated as a Central Management Server maintains server groups that contain the connection information for one or more instances of SQL Server. Transact-SQL statements and Policy-Based Management policies can be executed
    at the same time against server groups. You can also view the SQL Server log files on instances that are managed through a Central Management Server. Versions of SQL Server that are earlier than SQL Server 2008 cannot be designated as a Central Management
    Server.
    Transact-SQL statements can also be executed against local server groups in Registered Servers.
    More on below link:http://msdn.microsoft.com/en-in/library/bb895144.aspx
    For question on SSRS, there is option to embed buttons and by which you have option to put some commaned to execute like you can call some batch file to execute some jobs on other servers by using osql and others. This way you can  try and check.
    Santosh Singh

  • Multi-threaded performance server using 2 ports to two-way communication

    Hi, I'm new in the forums so welcome everyone. I'm developing now an online computer game based on orginal Polish board-game, but it doesn't mean. Important is that I need to develope a high-performance multi-threaded server, which can serve... let's say few hundres of games, and a thousend of players simulateously. My server works on two ports/sockets.
    First one is represented by "ServerSocketChannel clientConSsc" in my code. The main thread in my server class which invokes the method "run()" (which You can see below), registers clientConSsc with Selector and then repeatingly accepts incoming connections from clients on this socket. When connection(channel) is estabilished and clients wants to write some request to this channel, the main thread on server creates a new instance of class "RequestHandler" which extends Thread and handles this request (reads the request from channel, makes some changes on server, spreads some new messages to other clients in the same game and so on... everything on the same socket/port/channel). Then the channel/connection is closed by the server - I call such connections: "a short connections". In the same time the main thread continues the loop and is still able to accept connections from another players. That's the idea of multi-threaded server, right? :) And to this point, everything works fine, but... what if the server wants to trigger some new command, write new information to client?
    Server could have tried to open a SocketChannel to client's IP address, but then the client programme would have to create and ServerSocketChannel object, bind it to some InetAddress and then... and then client becomes a server! - that breaks the idea of client-server cooperation and demands on players of my game to have routed some port on their machines. To resolve this problem I made some sort of "system" which, when some player/client is logging into my server, accepts second (this time constant, not "short") connection on the second port I mentoined on the beginning. This connection is held in variable "SocketChannel serverCon" of class "Player" - which reflects a player logged onto server. Server maintains every such connection till the client logs off. After the connection is accepted, the player whom connection it was is added to collection called "playersToRegisterToWrite". After the Selector.selectNow() is invoked (as You can see in the code below), each and every player's connection is registered in selector (with selection key - OP_WRITE and attachment pointing on owning player). In the same time client's code is trying to read some bytes from this connection and blocks on it until some bytes are written to this connection. When server wants to "tell" something to client, deliver some message/command, it creates a new instance of class which extends an abstract class called "ServerAction" (another new thread) and adds it to collection "actionsToDo". In ServerAction's method "run()" there are whole code to interact with client (e.g. send an update of players' list, an update of games' list, a chat message). Finnaly when Selector informs the server that some connection is writable (some client is waiting for commands), then server checks if there's any "actionToDo" involving this client/player. If there is, it unregisters the connection from Selector (so no other ServerAction (thread) can write on this connection) and starts the action. At the end of every "run()" method of subclass of ServerAction there's a code, which again adds the player to collection "playersToRegisterToWrite", so the player's connection can again be registered in Selector and the player can again receive informations from server - after it consumed THIS "ServerAction".
    It looks to me like it should be working fine, but it's not. When I test my server and clients on the same machine (no ping/latency) everything seems to be working fine. But when it comes to play my game with somebody even on LAN or through the Internet there comes the problems. My first socket I describe (and first type of connections - short connections) works perfectly fine, so the requests triggered by client are delivered and handled properly. But the second socket is cirppling. For example: the server triggers a command refering to an update of clients logged to server' list. It is triggered by Selector so the client should be ready to read data from server, so the server sends data! And the client never receives it... Why?
    It experimented a whole lot of time on SocketChannel's method "configureBlocking(boolean)", but it never helps. I think the client should always block it's listening thread on connection, contratry to server which is ment to be fast, so it should send the data through non-blocking channels. Am I right? Are there any rules refering blocking configuration of SocketChannels?
    I will be grateful for every answer. To help You out I attach also drafts from run()'s methods of my classes.
    Server's main method - main thread :
        public void run() {
           try {
                selector = Selector.open();
                clientConSsc.configureBlocking(false);
                clientConSsc.register(selector , SelectionKey.OP_ACCEPT);
                while(serverRunning) {
                    try {
                        selector.selectNow();
                        Iterator it;
                        synchronized(playersToRegisterToWrite) {
                            it = playersToRegisterToWrite.iterator();
                            while(it.hasNext()) {
                                Player player = (Player)it.next();
                                it.remove();
                                player.serverCon.configureBlocking(false);
                                player.serverCon.register(selector , SelectionKey.OP_WRITE , player);
                        Set keys = selector.selectedKeys() {
                        it = keys.iterator();
                        while(it.hasNext()) {
                            SelectionKey key = (SelectionKey)it.next();
                            if(key.isAcceptable()) {
                                it.remove();
                                clientCon = clientConSsc.accept();
                                clientCon.configureBlocking(false);
                                clientCon.register(selector , SelectionKey.OP_READ);
                                continue;
                            if(key.isReadable()) {
                                it.remove();
                                key.cancel();
                                new RequestHandler(this , (SocketChannel)key.channel()).start();
                                continue;
                            if(key.isWritable()) {
                                if(key.attachment() != null ) {
                                    ServerAction action = null;
                                    synchronized(actionsToDo) {
                                        Iterator aIt = actionsToDo.iterator();
                                        while(aIt.hasNext()) {
                                            ServerAction temp = (ServerAction)aIt.next();
                                            if(temp.getPlayer().equals((Player)key.attachment())) {
                                                action = temp;
                                                aIt.remove();
                                                break;
                                    if(action != null) {
                                        key.channel().configureBlocking(false);
                                        it.remove();
                                        key.cancel();
                                        action.start();
                                continue;
                    } catch(Exception e) {
                        statusArea.append(e.toString() + "\n");
                        e.printStackTrace();
                        continue;
            } catch(ClosedChannelException e) {
                statusArea.append(e.toString() + "\n");
            } catch(IOException e) {
                statusArea.append(e.toString() + "\n");
                A part of server's RequestHandler's class' method run() - the method which handles requests triggered by client on first port:
    public void run() {
            boolean served = false;
                try {
                    channel.configureBlocking(true);
                    retryCount++;
                    retry = false;
                    String command = ns.readText(channel).trim();
                    ns.statusArea.append("ktos przesyla komende: " + command + "\n");
                    if(command != null && !command.equals("ERROR")) {
                        String[] cmd = command.split("�");
                        ns.statusArea.append("komenda: " + cmd[0] + "\n");
                        if(cmd[0].equals("CHAT")) {
                            if(cmd.length != 5) {
                                retry();
                            } else {
                                if(cmd[2].equals("NOGAME")) {      // jezeli nie ma okreslonej gry czyli rozsylamy do wszystkich
                                    for(int i = 0 ; i < ns.loggedPlayersListItems.size() ; i++) {
                                        Player current = (Player)ns.loggedPlayersListItems.get(i);
                                        if(current.state == Player.CHOOSING && !current.equals(new Player(Integer.parseInt(cmd[1]))))   // jezeli gracz jest w okienku wybierania gry to wysylamy mu broadcast
                                            ns.actionsToDo.add(new SendMsg(ns , current , "CHAT�" + cmd[1] + "�" + cmd[3] + "�" + cmd[4]));
                                } else {
                                    Game game = (Game)ns.gamesListItems.get(ns.gamesListItems.indexOf(new Game(Integer.parseInt(cmd[2]))));
                                    for(int i = 0 ; i < game.players.size() ; i++) {
                                        Player current = (Player)game.players.get(i);
                                        if(!current.equals(new Player(Integer.parseInt(cmd[1]))))
                                            ns.actionsToDo.add(new SendMsg(ns , current , "CHAT�" + cmd[1] + "�" + cmd[3] + "�" + cmd[4]));
                                served = true;
                        } else if(cmd[0].equals("GETGAMEINFO")) {
                            if(cmd.length != 3)
                                retry();
                            else {
                                int gameID = Integer.parseInt(cmd[2]);
                                ns.statusArea.append("poproszono o informacje o grze nr: " + gameID + "\n");
                                Game checkedGame = new Game(gameID);
                                if(ns.gamesListItems.contains(checkedGame)) {
                                    Game game = (Game)ns.gamesListItems.get(ns.gamesListItems.indexOf(checkedGame));
                                    channel.configureBlocking(true);
                                    ObjectOutputStream oos = new ObjectOutputStream(channel.socket().getOutputStream());
                                    oos.writeObject(game);
                                    oos.writeObject(game.players);
                                    oos.flush();
                                    ns.statusArea.append("wyslano informacje o grze nr: " + gameID + "\n");
                                } else {
                                    ns.statusArea.append("brak gry o nr: " + gameID + "\n");
                                served = true;
                } catch(IOException e) {
                    e.printStackTrace();
            if(!served) {
                ns.findAndDisconnectPlayer(channel);
            try {
                channel.close();
            } catch(IOException e) {
                e.printStackTrace();
        }An example of ServerAction's subclass - the class which triggers server commands to client on second port:
    class UpdateLoggedPlayersList extends ServerAction {
        public UpdateLoggedPlayersList(NeuroServer ns , Player player) {
            super(ns , player);
        public void run() {
            try {
                serverCon.configureBlocking(true);
                ns.sendText("UPDATELOGGEDPLAYERSLIST" , serverCon);
                if(ns.readText(serverCon).equals("OK")) {
                    ObjectOutputStream oos = new ObjectOutputStream(serverCon.socket().getOutputStream());
                    oos.writeObject(ns.loggedPlayersListItems);
                    oos.flush();
                synchronized(ns.playersToRegisterToWrite) {
                     ns.playersToRegisterToWrite.add(player);
            } catch(IOException e) {
                e.printStackTrace();
    }A part of client's CmdHandler's class' method run() - the method which handles commands triggered by server:
    public void run() {
        try {
            while(works) {
                String command = nc.readText(nc.serverCon);
                System.out.println("Server przesyla komende: " + command + "\n");
                String[] cmd = command.split("�");
                if(cmd[0] != null && !cmd[0].equals("ERROR")) {
                    if(cmd[0].equals("CHAT")) {
                        if(nc.chooseGameDialog != null && nc.chooseGameDialog.isVisible()) {     // jezeli na wybieraniu gry
                            newChatEntry(cmd[2] , null , cmd[3] , nc.chooseGameDialog.chatPane);
                        } else if(nc.readyDialog != null && nc.readyDialog.isVisible()) {  // jesli na przygotowywaniu
                            Player sender = (Player)nc.actGame.players.get(nc.actGame.players.indexOf(new Player(Integer.parseInt(cmd[1]))));
                            newChatEntry(cmd[2] , sender.fraction , cmd[3] , nc.readyDialog.chatPane);
                        } else if(nc.ng != null) {                   // jesli w grze
                            Player sender = (Player)nc.actGame.players.get(nc.actGame.players.indexOf(new Player(Integer.parseInt(cmd[1]))));
                            newChatEntry(cmd[2] , sender.fraction , cmd[3] , nc.ng.inGameChatPane);
                    } else if(cmd[0].equals("UPDATELOGGEDPLAYERSLIST")) {
                        nc.sendText("OK" , nc.serverCon , false);
                        nc.serverCon.configureBlocking(true);
                        ObjectInputStream ois = new ObjectInputStream(nc.serverCon.socket().getInputStream());
                        DefaultListModel players = (DefaultListModel)ois.readObject();
                        nc.chooseGameDialog.updateLoggedPlayersList(players);
        } catch(IndexOutOfBoundsException e) {
            System.out.println(e);
        } catch(IOException e) {
            System.out.println(e);
        } catch(ClassNotFoundException e) {
            System.out.println(e);
    }And two methods I used in codes above: sendText(String text , SocketChannel sc) and readText(SocketChannel sc) - they are my "utility" methods, which I use to send and receive Strings through specified SocketChannels.
    boolean sendText(String text , SocketChannel sc) {
        ByteBuffer bbuf = ByteBuffer.allocate(BSIZE);
        boolean sendRetry;
        boolean sent = false;
        do {
            sendRetry = false;
            try {
                StringBuffer cmd = new StringBuffer();
                cmd.setLength(0);
                if(text.length()+4 < 100)
                    cmd.append("0");
                if(text.length()+4 < 10)
                    cmd.append("0");
                cmd.append(Integer.toString(text.length()+4) + "�");
                cmd.append(text);
                cmd.append("\n");
                bbuf = charset.encode(CharBuffer.wrap(cmd));
                sc.write(bbuf);
                bbuf.clear();
                int n = sc.read(bbuf);
                if(n == 1) {
                    bbuf.flip();
                    Byte re = bbuf.get();
                    if(re == 1) {
                        sendRetry = true;
                    } else {
                        sent = true;
            } catch(Exception e) {
                findAndDisconnectPlayer(sc);
                try {
                    sc.close();
                } catch(IOException f) {
                    f.printStackTrace();
                return false;
        } while(!sent && sendRetry);
        return true;
    String readText(SocketChannel sc) {
        ByteBuffer bbuf = ByteBuffer.allocate(BSIZE);
        int readRetryCount = -1;
        boolean readRetry;
        do {
            readRetry = false;
            readRetryCount++;
            StringBuffer cmd = new StringBuffer();
            cmd.setLength(0);
            bbuf.clear();
            try {
                readLoop:
                while(true) {
                    int n = sc.read(bbuf);
                    if(n > 0) {
                        bbuf.flip();
                        CharBuffer cbuf = charset.decode(bbuf);
                        while(cbuf.hasRemaining()) {
                            char c = cbuf.get();
                            if(c == '\r' || c == '\n') break readLoop;
                            cmd.append(c);
                    } else break;
                statusArea.append(Thread.currentThread().getId() + " readText() odczytuje: " + cmd.toString() + "\n");
                if(cmd.length() < 3 || Integer.parseInt(cmd.substring(0 , 3)) != cmd.length()) {
                    sc.write(ByteBuffer.wrap(new byte[] {1}));
                    readRetry = true;
                } else {
                    sc.write(ByteBuffer.wrap(new byte[] {0}));    // length OK
                    return cmd.toString().substring(4 , cmd.toString().length());
            } catch(Exception e) {
                findAndDisconnectPlayer(sc);
                try {
                    sc.close();
                } catch(IOException f) {
                    f.printStackTrace();
                return "ERROR";
        } while(readRetry && readRetryCount < 3);
        findAndDisconnectPlayer(sc);
        try {
            sc.close();
        } catch(IOException e) {
            e.printStackTrace();
        return "ERROR";
    }Edited by: Kakalec on Jul 23, 2008 11:04 AM

    You seem to be using a horrendous mixture of PrintWriters, BufferedReaders, ObjectOutputStreams, and no doubt ObjectInputStreams. You can't do that.
    Some rules about this:
    (a) Whenever you use a stream or reader or writer on a socket, you must allocate it once for the life of the socket, not every time you want to do an I/O.
    There are many reasons for this including losing buffered data in the old stream and auto-closure of the socket on garbage-collection of the old stream.
    (b) You can't mix stream types on the same socket. (i) If you're writing objects, use an ObjectOutputStream, you must read with an ObjectInputStream, and you can't read or write anything that isn't supported by the API of ObjectOutputStream. (ii) If you're writing lines, use a BufferedWriter and a BufferedReader at the other end. If you're writing characters, use a Writer and a Reader. (iii) If you're writing primitive data or UTF strings, use a DataOutputStream and a DataInputStream. (iv) If you're writing bytes, use DataOutputStream and a DataInputStream or an OutputStream and an InputStream. You can't mix (i), (ii), (iii), and (iv).
    (c) Don't use PrintWriter or PrintStream over the network. They swallow exceptions that you need to know about. They are for writing to the console, or log files, where you don't really care about exceptions.
    (d) Call flush() before reading.
    (e) Always close the 'outermost' output stream or writer of a socket, never the input stream or the socket itself. Closing any of these closes the socket and therefore makes the other stream unusable, but only closing the output stream/writer will flush it.

Maybe you are looking for