Example of Live ICSS implementation

Can somebody give me a URL for a public Live implementation of ICSS?
Ideally I would like to see an example of implementation where a few bespoke screens have been developed.
Thanks
Manoj

Let me explain a little bit more. BTW I am not even sure if this is right way to do, however it does seem like a plausible idea so far:
I have to provide a single interface to a data access object that a client application may use to access data.
The data can be stored in legacy or relational. I understand that JCA may help here but I am restricted from
going that route for a number of reasons.
The legacy data at the moment is accessed through MQ Series, while the most natural way to access RDBMS obviously is JDBC (barring any new CCI developments). I want to build the datasources and register them
with a JNDI service such that depending on the route to take (MQ or JDBC) the correct datasource is obtained.
The JDBC data source will be the one created by probably the app server vendor, while the MQ datasource
will be the one that I would have implemented. I will then have to wrap all the nasty code of MQ Series into a
JDBC implementation (MyDriver, MyConnection, MyCallableStatement, MyResultSet etc).
In a few years, when most (or all) of the legacy would have been converted to RDBMS, all (if there was an
understatement, this is it) I would have to do is switch the datasources (or actually remove the MQ one) and
without changing the interface, clients will start getting data from RDBMS.
Easier said than done, and I realize that, but the idea seems interesting.
What do you think ?

Similar Messages

  • Problem with running example 'Generating Live Audio/Video Data'

    Hello,
    Concerning the example 'Generating Live Audio/Video Data', I'm having trouble with the run instructions.
    http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/LiveData.html
    How does JMFRegistry know about the location of jmfsample?
    How is 'live' resolved as a URL?
    2.Register the package prefix for the new data source using JMFRegistry
    - Run JMFRegistry
    - In the Protocol Prefix List section add "jmfsample" and hit Commit.
    4.Select File->Open URL and enter "live:"
    Much thanks,
    Ben

    I'm getting the following error message: "Could not create player for live"Implies you've either not registered the "live:" protocol prefix in the JMF Registry, or, it couldn't load the class you registered for it...or it might be erroring out inside the actual live protocol, I'm not sure what that would look like, but a System.err.println statement in the constructor of both of those classes might be a good idea.
    I added the output of javac (DataSource.class and LiveStream.class) to a directory on the classpath.
    C:\Program Files\JMF2.1.1e\lib\jmfsample\media\protocol\liveEh, that looks a little questionable to me. I'm not 100% sure that the JRE will automaticlly descend into the package subdirectories like that, looking for classfiles, for every folder on the path. I am, of course, fully open to the idea that it does and I just never thought about it...but I guess I just thought it only did that for JAR files, not CLASS files. Regardless, I'd recommend:
    1) Make sure you've registered the protocol prefix "live:" correctly in JMF Registry
    2) Try to run it with the 2 compiled class files in the same folder as your project
    3) Try to run it with the 2 compiled class files in the lib directory, if that's on the classpath
    4) Try to run it with the 2 compiled class files installed in the JRE as an extension (google for how to do this because I don't remember off the top of my head)
    5) Reinstall JMF and see if that helps

  • Can I use Apple store from a country other than the country I live in.  Example:  I live in USA and want to use Apple store in Thailand to buy and download thai content.

    Can I use Apple store from a country other than the country I live in.  Example:  I live in USA and want to use Apple store in Thailand to buy and download thai content.

    No, you can only buy content from your own country's store - to be able to buy form another store you need a valid billing address in that country and be in that country when buying from it. You can try requesting that the content that you want be added to the US store, but ultimately it's the content providers (record companies, film studios etc) that will have to grant Apple a license to sell it there : http://www.apple.com/feedback/itunes.html

  • Go live -post  implementation support

    Hi friends,
    can u tell the difference between go live support and post implementation support.
    I could not able to assign points for my previous topic,b cos radio buttons were  missing .Any idea?
    thanks
    regards
    krishna

    Hi Krishna,
    go live support regards only the go-live phase (transport, init loads and so on), that is when you start everthing in your production environment, post implementation is the subsequent phase in which you assure a support (final user support, system tuning, stabilization of yhe system) after the go-live and during the first days (weeks) of life of your system !!!
    Hope it helps!
    Bye,
    Roberto
    (if you want to assign point and you don't have the possibility is because you don't have marked your post as question...it's enough to edit your post, mark it as question and assign points !!! in other case it's only a temporary techincal problem...just waiting for)

  • Could you provide me BADI examples that you have implemented

    Hi,
    Please write me about what you have done,
    not the url's related to badi.
    For example you can write the badi name and then what you have done in it.In brief your code.
    Thanks.

    Here is one :
    1) execute Tcode SE18.
    2) Specify a definition Name : ZBADI_SPFLI
    3) Press create
    4) Choose the attribute tab. Specify short desc for badi.. and specify the type :
    multiple use.
    5) Choose the interface tab
    6) Specify interface name: ZIF_EX_BADI_SPFLI and save.
    7) Dbl clk on interface name to start class builder . specify a method name (name,
    level, desc).
    Method level desc
    Linese;ection instance methos some desc
    8) place the cursor on the method name desc its parameters to define the interface.
    Parameter type refe field desc
    I_carrid import spfli-carrid some
    I_connid import spefi-connid some
    9) save , check and activate…adapter class proposed by system is
    ZCL_IM_IM_LINESEL is genereated.
    IMPLEMENTATION OF BADI DEFINITION
    1) EXECUTE tcode se18.choose menuitem create from the implementation menubar.
    2) Specify aname for implementation ZIM_LINESEL
    3) Specify short desc.
    4) Choose interface tab. System proposes a name fo the implementation class.
    ZCL_IM_IMLINESEL which is already generarted.
    5) Specify short desc for method
    6) Dbl clk on method to insert code..(check the code in “AAA”).
    7) Save , check and activate the code.
    Now write a sample program to use this badi method..
    Look for “BBB” sample program.
    “AAA”
    data : wa_flights type sflight,
    it_flights type table of sflight.
    format color col_heading.
    write:/ 'Flight info of:', i_carrid, i_connid.
    format color col_normal.
    select * from sflight
    into corresponding fields of table it_flights
    where carrid = i_carrid
    and connid = i_connid.
    loop at it_flights into wa_flights.
    write:/ wa_flights-fldate,
    wa_flights-planetype,
    wa_flights-price currency wa_flights-currency,
    wa_flights-seatsmax,
    wa_flights-seatsocc.
    endloop.
    “BBB”
    *& Report ZBADI_TEST *
    REPORT ZBADI_TEST .
    tables: spfli.
    data: wa_spfli type spfli,
    it_spfli type table of spfli with key carrid connid.
    *Initialise the object of the interface.
    data: exit_ref type ref to ZCL_IM_IM_LINESEL,
    exit_ref1 type ref to ZIF_EX_BADISPFLI1.
    selection-screen begin of block b1.
    select-options: s_carr for spfli-carrid.
    selection-screen end of block b1.
    start-of-selection.
    select * from spfli into corresponding fields of table it_spfli
    where carrid in s_carr.
    end-of-selection.
    loop at it_spfli into wa_spfli.
    write:/ wa_spfli-carrid,
    wa_spfli-connid,
    wa_spfli-cityfrom,
    wa_spfli-deptime,
    wa_spfli-arrtime.
    hide: wa_spfli-carrid, wa_spfli-connid.
    endloop.
    at line-selection.
    check not wa_spfli-carrid is initial.
    create object exit_ref.
    exit_ref1 = exit_ref.
    call method exit_ref1->lineselection
    EXPORTING
    i_carrid = wa_spfli-carrid
    i_connid = wa_spfli-connid.
    clear wa_spfli.
    Reward if Helpful.

  • Live environment implementation project

    Can any Fico expert share his end to end implementation process in live environment.ill will be thankfull to him....
    Moderator: this kind of questions are not allowed in the forum, please check the Rules of Engagement document in the first page of the forum. Therefore, your thread was blocked.

    In implementations there will be 5 phases
    Project preparation
    Blue Print Preparation
    Realisation
    Final Preparation
    Go live and support
    Project preparation will be done by the senior management team,
    Blue print preparation is the documentiaon prepared how to configure in the system.
    Realisation part where we works in real environment
    Final preparaion is the cut over activities
    After golive we need to support to the client

  • Live chat implementation

    Hi All,
    I need a small help. I want to implement live chat feature to my website Is there any API which supports this feature please help me how i can achieve this in jsp.
    Thanking you in advance,
    I apologize for my poor english
    Regards,
    Rama.

    unfortunately it's just for C# or VB, but I need jsp/javascript

  • Configuration Examples of WAVE Inline implementations

    I am implementing the first inline WAE device in our network.  But I am having difficulties finding examples of how the WAVE-294-K9 should be initially setup in preparation to register with the Central Manager. 
    I think I have a general idea of how it is supposed to work.  But I would like some examples to base my final decision on.
    I have not been able to find in the docs where it describes where the primary interface should be located.  Below is how I understand the inline should be connected, please advise on configuration or possible other options.  Thanks! Rich

    I am implementing the first inline WAE device in our network.  But I am having difficulties finding examples of how the WAVE-294-K9 should be initially setup in preparation to register with the Central Manager. 
    I think I have a general idea of how it is supposed to work.  But I would like some examples to base my final decision on.
    I have not been able to find in the docs where it describes where the primary interface should be located.  Below is how I understand the inline should be connected, please advise on configuration or possible other options.  Thanks! Rich

  • Are there any example vi's for implementing a circular buffer between a plc, opc server, and labview dsc??

    I am storing a block of data inside plc registers and reading this group into labview as a continuous set of datapoints. I am counting the number of scans in the plc and sometimes the number of points collected inside labview doesn't match.

    To explain a a little bit about tag updating:
    The LabVIEW DSC tag engine is not just updated on any change of the value within the plc. There are, in fact, several "deadbands" that must be crossed before those tags are updated:
    1) The OPC Server has a deadband - where the plc register value has to change a certain % before it is recorded.
    2) In the LabVIEW DSC moduel, there is an I/O Group Deadband that determines when the tag engine is actually updated.
    Both of these deadbands must be satisfied before a new "value" is recorded in the LabVIEW DSC tag engine.
    Therefore, I would check your OPC Server's deadband (configurable in the OPC Server configuration utility) and also the I/O Group deadband for those tags (configurable in the tag configuration
    editor).
    If this doesn't resolve the issue, please let me know. Thanks.

  • Federated Search  Implementation Example

    Hey,
    Does anybody has example of how to implement a simple ferederated Search.
    I see the documentation and it asks for implementing the interfaces. But how do I get the search query typed in by the user .. in my implementation classes?
    Thanks
    Pal

    you found the right API classes right?
    http://edocs.bea.com/alui/idk/docs60/javadocs/com/plumtree/remote/search/package-summary.html
    http://edocs.bea.com/alui/idk/docs60/javadocs/com/plumtree/remote/search/SearchExample.html
    http://edocs.beasys.com/alui/devdoc/docs60/Content_Services/Customizing_Plumtree_Search/Using_Federated_Search/PlumtreeDevDoc_Integration_Crawlers_DeployingSearch.htm#DeployCode

  • Migration questionaire for ICSS n ISA

    Good morning,
    I wanted to gear up myself with some questions to ask the implementers of a proj. so that I can better understand the kinda implementation that has done.
    I am looking specifically for ICSS and ISA question.
    Please post some if you guys/ gals are aware or if u think of any..
    Thanks in advance and anticipation.
    ave a good day.
    Clive

    Here are some which I feel might help you. These are based on my past support proj exp.
    ICSS (Internet Customer Self Service) / ISA (Internet Sales)
    Basic Installation/Development
    Version of ICSS implemented and Service Pack     
    Version of ISA implemented and Service Pack.     
    Scenario Implemented      
         ICSS      B2B       B2C
         ISA      B2B       B2C
    Version Controlling Implemented?     Yes      No
    If above is Yes then what tool and please document the process for the same     
    Solution Database installed for the FAQ?     0 Yes      0 No
    IDE used?     
    Is TREX engine configured, if yes then name of the RFC destination     0 Yes      0 No
    Search Server Relation name.(To publish CRM Products)     
    Internet User Management/Roles and Authorization
    User type created at the backend     0
    SU01
    0
    SU01
    0
    SU01 & SU05
    User created using web user interface? If no then How?     
    Country Settings for internet Users? Country and date format.     
    Super User facility given to the customer     
    Name the reference user used for creating the B2C users     
    Reference user used for creating the B2B users     
    Roles assigned for B2B users     
         ICSS     
         ISA     
    Roles assigned for B2C users     
         ICSS     
         ISA     
    ICSS
    XCM Configuration
    Name the default configuration used?     
    JCO connection to the backend system     
    FAQ Enabled      0 Yes      0 No
    Solution Search Enabled
    0 Yes      0 No
    Transactions Enabled     0 Yes      0 No
    Installed Base Enabled     0 Yes      0 No
    Product Registration Enabled     0 Yes      0 No
    FAQ enabled for portal     0 Yes      0 No
    Solution Search enabled for portal     0 Yes      0 No
    Installed Base Enabled for portal     0 Yes      0 No
    Product Registration Enabled for portal     0 Yes      0 No
    Transaction Enabled for portal     0 Yes      0 No
    File Attachment size     
    Live Web Collaboration component Enabled     0 Yes      0 No
    General
    Object Family used and to which product type it is assigned?     
    Name Installed Base used for creation of CSR?     
    Partner functions used in the partner Determination Procedure used for service order creation.     
    Object category used for individual objects being created when you register products as part of an E-Commerce Internet Customer Self-Service process?     
    FAQ enabled for customers? If Yes, then what is the Category ID used for FAQ product     
    Is warranty enabled for products? If yes, list down the warranties used for the corresponding type of product     
    Catalog type used for the service product     
    Partner functions used for the product registration     
    Transaction type used for transaction     
    Transaction type used for complaint processing     
    Technical
    How ICSS is accessed?     
    ICSS standard code has been modified?     
    Name custom package created for developing/enhancing Standard SAP code     
    Any new mime object used apart from the Standard SAP, if yes then for what?     
    Any XML files been modified manually, if yes then for what reason and name the files      
    Any custom RFC module created at the backend, for what reason     
    Any standard RFC Module or standard SAP code modified     
    Any call back function created for business transaction     
    Is there any custom Workflow attached to the service order creation, or complaint creation     
    Please name the Badi’s implemented and for what reason     
    Any SMARTFORM has been enhanced or created, If yes please name them     
    Julius

  • Feedback request for a Single Instance Application Implementation

    Hello,
    I have been working on a class which I tried to make the most generic I could so that I could re-use it for various projects. It offers 2 main functionalities:
    -Preventing multiple instances of an application
    -Allowing a user to stop the application even if it doesn't read any user input
    Of course if someone wants to have multiple instances of the same application, it is still possible. The only requirement is that each instance be configured to run on a different port.
    I would like your feedback on how I've implemented this to make sure I haven't missed the chance to make my Class flexible and re-usable. I would also make sure that there aren't any situations where the different threads used for realizing this functionality will run into any conflicts.
    My code includes the following files:
    Serviceable.java : An interface which must be implemented by every application using these classes
    DuplicateServiceException.java : An exception thrown when an instance of the application is already running
    Service.java : The class responsible for offering the functionalities I already mentionned
    Main.java : An example of a class implementing Serviceable and offering two ways of closing the Application. 1- By closing the JFrame which is displayed. 2- By sending the stop command.
    In order to execute this example, you have to specify the following command line arguments:
    -DService.Command={start/stop} //Either start or stop command
    -DService.Port=<0-65535> //Port to be used for receiving the stop command and preventing multiple instances
    Serviceable.java
    * Serviceable cares about two parts of the life of a Service.  Its startup
    * and its shutdown sequences.  The startup occurs only after making sure
    * no other instance of the Service is running.  Shutdown has to be
    * synchronized between multiple threads since it is possible to shutdown
    * the service through a shutdown command sent by another process, or through
    * the normal flow of execution of the service.
    * @author Gabriel Aubut-Lussier
    public interface Serviceable {
          * Initiates the startup of the Service since we have made sure
          * that there isn't any other instance of the Service running.
         public void startup();
          * Initiates the shutdown of the Service since we've received
          * a shutdown request from one of the two supported means of
          * shutting down.
         public void shutdown();
    DuplicateServiceException.java
    public class DuplicateServiceException extends Exception {
          * serialVersionUID?  Bah. Eclipse generates one automatically so why not...
         private static final long serialVersionUID = 3929576386522489749L;
         public DuplicateServiceException() {
              super();
         public DuplicateServiceException(String msg) {
              super(msg);
    Service.java
    * The same way a graphical application is running as long as there
    * is something to display, a background service will run as long as
    * there is an active Thread.
    * A service can be terminated in different ways.  First of all, it
    * can be terminated through its normal flow of execution.  On the
    * other hand, it is possible to provoke the termination of a Service
    * externally.
    * To terminate the service through the normal flow, just call the
    * Service.shutdown() method.  Another way to terminate the service
    * is to start a new instance of the program with the Stop command.
    * This Service implementation will behave according to two system
    * properties.  The property Service.Command can be set
    * to "start" or "stop".  When set to "start", the Service will make
    * sure there isn't another instance of the service already running.
    * If it is the case, a DuplicateServiceException will be thrown.  In
    * the other case, the Service will start.  When the "stop" command
    * is invoked, the Service will attempt to stop a running instance of
    * the Service.  The other property is Service.Port and
    * it defines the Port number which will be used to support the
    * functionalities offered by the Service class.
    * It is recommended to set these properties as command line arguments
    * when launching the application.  Moreover, batch files or shell
    * scripts can be created for invoking the start and stop commands.
    * @author Gabriel Aubut-Lussier
    public class Service implements Runnable {
         public final static String START_COMMAND = "start";
         public final static String STOP_COMMAND = "stop";
         public final static String SERVICE_COMMAND = "Service.Command";
         public final static String SERVICE_PORT = "Service.Port";
         private String serviceCommand;
         private int servicePort;
         private Serviceable service;
         private ServerSocket serviceListener;
         private Thread serviceThread;
          * Creates a new service registering the hooks required to perform
          * clean termination sequences.
          * @param s
          * @throws DuplicateServiceException
         public Service(Serviceable s) throws DuplicateServiceException {
              service = s;
              serviceCommand = System.getProperty(SERVICE_COMMAND);
              String servicePortString = System.getProperty(SERVICE_PORT);
              if(servicePortString == null)
                   servicePort = -1;
              else
                   servicePort = Integer.parseInt(servicePortString);
          * Try running this new Service instance if there isn't one
          * already running.
          * @throws DuplicateServiceException if another service instance is already running.
         public void start() throws DuplicateServiceException {
              if(serviceCommand == null || servicePort < 0) {
                   throw new IllegalArgumentException("The command and port number must be specified.");
              if(serviceCommand.equals(START_COMMAND)) {
                   try {
                        serviceListener = new ServerSocket(servicePort);
                        serviceThread = new Thread(this);
                        serviceThread.start();
                        service.startup();
                   } catch(BindException e) {
                        throw new DuplicateServiceException("An instance of the service is already running.");
                   }catch(IOException e) {
                        e.printStackTrace();
              } else if(serviceCommand.equals(STOP_COMMAND)) {
                   shutdown();
          * Provoke a shutdown command.
         public void shutdown() {
              try {
                   Socket sock = new Socket("localhost", servicePort);
                   OutputStreamWriter out = new OutputStreamWriter(sock.getOutputStream());
                   out.write("shutdown");
                   out.flush();
                   out.close();
                   sock.close();
              } catch (UnknownHostException e) {
                   e.printStackTrace();
              } catch (IOException e) {
                   //This exception may occur when trying to stop a service which wasn't running.
                   //There is no need to do anything in this case.
          * While the Service is running, it listens on a port to make sure no
          * other instance of this Service is started and to listen to shutdown
          * commands.
         public void run() {
              boolean keepGoing = true;
              while(keepGoing) {
                   try {
                        Socket sock = serviceListener.accept();
                        InputStreamReader in = new InputStreamReader(sock.getInputStream());
                        char cBuf[] = new char[256];
                        int amount = in.read(cBuf);
                        in.close();
                        sock.close();
                        keepGoing = !((new String(cBuf, 0, amount)).equals("shutdown"));
                   } catch (IOException e) {
                        e.printStackTrace();
              try {
                   service.shutdown();
                   serviceListener.close();
              } catch(IOException e) {
                   e.printStackTrace();
         public String getServiceCommand() {
              return serviceCommand;
         public void setServiceCommand(String serviceCommand) {
              this.serviceCommand = serviceCommand;
         public int getServicePort() {
              return servicePort;
         public void setServicePort(int servicePort) {
              this.servicePort = servicePort;
    Main.java
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.JFrame;
    public class Main implements Serviceable {
         private JFrame window;
         private Service service;
         public static void main(String[] args) {
              new Main();
         public Main() {
              try {
                   service = new Service(this);
                   service.start();
              } catch(DuplicateServiceException e) {
                   e.printStackTrace();
         public void startup() {
              window = new JFrame("SERVICE TEST! :D");
              window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
              window.addWindowListener(new WindowAdapter() {
                   public void windowClosed(WindowEvent e) {
                        service.shutdown();
              window.setVisible(true);
         public void shutdown() {
              System.out.println("Application shutdown");
              window.dispose();
    }Thanks in advance for your feedback.
    -Gabriel Aubut-Lussier

    I have fixed the handshake.
    And even though it isn't implemented yet, I think I have my solution for the limitation of 1 instance per user. I plan on using a hidden file in the user's home directory in which I will write the port number where the running application is listening for events. I have not yet chosen how the port number will be chosen before being written to the file but I am thinking about using a random number between 1024 and 65535. Using this approach, it is possible to maintain all the features I've implemented in the Single Overall Instance solution I already have.
    Here is the code with the handshake fixed:
    Serviceable.java
    * Serviceable cares about two parts of the life of a Service.  Its startup
    * and its shutdown sequences.  The startup occurs only after making sure
    * no other instance of the Service is running.  Shutdown has to be
    * synchronized between multiple threads since it is possible to shutdown
    * the service through a shutdown command sent by another process, or through
    * the normal flow of execution of the service.  Moreover, when another instance
    * is prevented from being launched, the running instance is notified so that it
    * can react to such an event.
    * @author Gabriel Aubut-Lussier
    public interface Serviceable {
          * Initiates the startup of the Service since we have made sure
          * that there isn't any other instance of the Service running.
         public void startup();
          * Notifies the Service that the application has been invoked again in
          * case the running instance wants to react to such an event.  Most GUI
          * applications will just bring themselves to the front while background
          * services will maybe just want to re-scan their configuration files or
          * just ignore the event.
         public void invoke();
          * Initiates the shutdown of the Service since we've received
          * a shutdown request from one of the two supported means of
          * shutting down.
         public void shutdown();
    DuplicateInstanceException.java
    public class DuplicateServiceException extends Exception {
          * serialVersionUID?  Bah. Eclipse generates one automatically so why not...
         private static final long serialVersionUID = 3929576386522489749L;
         public DuplicateServiceException() {
              super();
         public DuplicateServiceException(String msg) {
              super(msg);
    Service.java
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.BindException;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.net.UnknownHostException;
    * The same way a graphical application is running as long as there
    * is something to display, a background service will run as long as
    * there is an active Thread.
    * A service can be terminated in different ways.  First of all, it
    * can be terminated through its normal flow of execution.  On the
    * other hand, it is possible to provoke the termination of a Service
    * externally.
    * To terminate the service through the normal flow, just call the
    * Service.shutdown() method.  Another way to terminate the service
    * is to start a new instance of the program with the Stop command.
    * This Service implementation will behave according to two system
    * properties.  The property Service.Command can be set to "start"
    * or "stop".  When set to "start", the Service will make sure there
    * isn't another instance of the service already running.  If it is
    * the case, a DuplicateServiceException will be thrown.  In the
    * other case, the Service will start.  When the "stop" command is
    * invoked, the Service will attempt to stop a running instance of
    * the Service.  The other property is Service.Port and it defines
    * the Port number which will be used to support the functionalities
    * offered by the Service class.
    * It is recommended to set these properties as command line arguments
    * when launching the application.  Moreover, batch files or shell
    * scripts can be created for invoking the start and stop commands.
    * @author Gabriel Aubut-Lussier
    public class Service implements Runnable {
         public final static String START_COMMAND = "start";
         public final static String STOP_COMMAND = "stop";
         public final static String SERVICE_COMMAND = "Service.Command";
         public final static String SERVICE_PORT = "Service.Port";
         private final static String GREETING = "Greetings";
         private final static String QUERY = "?";
         private final static String ACCEPT = "yes";
         private final static String DECLINE = "no";
         private final static String SHUTDOWN = "shutdown ";
         private final static int SO_TIMEOUT = 100;
          * This is the application-specific String
         private String serviceClass;
          * This is the command which we will execute when start() is invoked
          * The value is either "start" or "stop"
          * This value can be configured using the System property: Service.Command
         private String serviceCommand;
          * This is the port which is used to watch for duplicate instances
          * This value can be configured using the System property: Service.Port
         private int servicePort;
         private Serviceable service;
         private ServerSocket serviceListener;
         private Thread serviceThread;
          * Creates a new service registering the hooks required to perform
          * clean termination sequences.
          * @param s A Serviceable class
          * @throws DuplicateServiceException If there is a duplicate instance running
         public Service(Serviceable s) throws DuplicateServiceException {
              service = s;
              serviceClass = s.getClass().toString();
              serviceCommand = System.getProperty(SERVICE_COMMAND);
              String servicePortString = System.getProperty(SERVICE_PORT);
              if(servicePortString == null)
                   servicePort = -1;
              else
                   servicePort = Integer.parseInt(servicePortString);
          * Try running this new Service instance if there isn't one
          * already running.
          * @throws DuplicateServiceException if another service instance is already running.
          * @throws BindException if another application is using the configured port.
         public void start() throws DuplicateServiceException, BindException {
              if(serviceCommand == null || servicePort < 0 || servicePort > 65535) {
                   throw new IllegalArgumentException("The command and port number must be specified.");
              if(serviceCommand.equals(START_COMMAND)) {
                   try {
                        serviceListener = new ServerSocket(servicePort);
                        serviceThread = new Thread(this);
                        serviceThread.start();
                        service.startup();
                   } catch(BindException e) {
                        queryOtherInstance();
                        throw e;
                   } catch(IOException e) {
                        e.printStackTrace();
              } else if(serviceCommand.equals(STOP_COMMAND)) {
                   shutdown();
          * Send the shutdown command to the running instance of the application.
         public boolean shutdown() {
              boolean shutdownSuccessful = false;
              try {
                   Socket sock = new Socket("localhost", servicePort);
                   sock.setSoTimeout(SO_TIMEOUT);
                   //If the greeting doesn't match, it's not a duplicate instance
                   //and we can't shut it down
                   InputStreamReader in = new InputStreamReader(sock.getInputStream());
                   OutputStreamWriter out;
                   if(receivedGreeting(in)) {
                        //Sending the shutdown command
                        out = new OutputStreamWriter(sock.getOutputStream());
                        out.write(SHUTDOWN + serviceClass);
                        out.flush();
                        //Read the confirmation
                        char cBuf[] = new char[1024];
                        int amount = in.read(cBuf);
                        String confirmation = new String(cBuf, 0, amount);
                        if(confirmation.equals(ACCEPT)) {
                             shutdownSuccessful = true;
                        out.close();
                   //Closing the connection
                   in.close();
                   sock.close();
              } catch (UnknownHostException e) {
                   //This exception shouldn't happen unless the loopback address doesn't exist?
              } catch (IOException e) {
                   //This exception may occur when trying to stop a service which wasn't running.
                   //There is no need to do anything in this case.
              return shutdownSuccessful;
          * Reads the greeting from the running instance we are interacting with.
          * @param in An InputStreamReader built on the Socket's InputStream
          * @return True if we received the expected greeting, false otherwise
          * @throws IOException if a problem occurs while receiving the greeting
         private boolean receivedGreeting(InputStreamReader in) throws IOException {
              //Reading the expected greeting from the server
              char cBuf[] = new char[1024];
              int amount = in.read(cBuf);
              String greeting = new String(cBuf, 0, amount);
              return greeting.equals(GREETING);
          * While the Service is running, it listens on a port to make sure no
          * other instance of this Service is started and to listen to shutdown
          * commands.
         public void run() {
              boolean keepGoing = true;
              while(keepGoing) {
                   Socket sock;
                   InputStreamReader in;
                   try {
                        sock = serviceListener.accept();
                        sock.setSoTimeout(SO_TIMEOUT);
                        //Sending a greeting
                        OutputStreamWriter out = new OutputStreamWriter(sock.getOutputStream());
                        out.write(GREETING);
                        out.flush();
                        //Reading the incoming message
                        in = new InputStreamReader(sock.getInputStream());
                        char cBuf[] = new char[1024];
                        int amount = in.read(cBuf);
                        String message = new String(cBuf, 0, amount);
                        //Writing an answer
                        boolean invoked = message.equals(serviceClass + QUERY);
                        if(invoked) {
                             out.write(ACCEPT);
                        } else {
                             out.write(DECLINE);
                             keepGoing = !message.equals(SHUTDOWN + serviceClass);
                        out.flush();
                        //Closing the connection
                        out.close();
                        in.close();
                        sock.close();
                        //Notify the running application is there has been an invocation
                        if(invoked) {
                             service.invoke();
                   } catch (IOException e) {
                        //Seems like an IO operation failed.  Let's just forget about
                        //this connection attempt and wait for another
              //Shutdown the Service
              service.shutdown();
              try {
                   serviceListener.close();
              } catch(IOException e) {
                   //Couldn't close the serverSocket upon shutdown?
                   //weird... but anyhow...
          * Connects to the configured port to check out wether it is a duplicate
          * instance of the application or if it is another application using the
          * same port number.  If it is another application, nothing will happen.
          * @throws DuplicateServiceException if it is a duplicate instance
         private void queryOtherInstance() throws DuplicateServiceException {
              try {
                   Socket sock = new Socket("localhost", servicePort);
                   sock.setSoTimeout(SO_TIMEOUT);
                   //Read greeting
                   InputStreamReader in = new InputStreamReader(sock.getInputStream());
                   String answer = null;
                   if(receivedGreeting(in)) {
                        //Writing the application-specific query
                        OutputStreamWriter out = new OutputStreamWriter(sock.getOutputStream());
                        out.write(service.getClass().toString() + "?");
                        out.flush();
                        //Reading the answer
                        char[] cBuf = new char[3];
                        int amount = in.read(cBuf);
                        answer = new String(cBuf, 0, amount);
                        out.close();
                   //Closing the connection
                   in.close();
                   sock.close();
                   //If the answer is "yes" then it is a duplicate
                   if(answer != null && answer.equals("yes")) {
                        throw new DuplicateServiceException("An instance of the service is already running.");
              } catch (UnknownHostException e) {
                   //This exception shouldn't happen unless the loopback address doesn't exist?
              } catch (IOException e) {
                   //If we fail to query the application appropriately we consider
                   //it isn't a duplicate entry so we do nothing.
         public String getServiceCommand() {
              return serviceCommand;
         public void setServiceCommand(String serviceCommand) {
              this.serviceCommand = serviceCommand;
         public int getServicePort() {
              return servicePort;
         public void setServicePort(int servicePort) {
              this.servicePort = servicePort;
    Main.java
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.net.BindException;
    import javax.swing.JFrame;
    public class Main implements Serviceable {
         private JFrame window;
         private Service service;
         public static void main(String[] args) {
              new Main();
         public Main() {
              try {
                   service = new Service(this);
                   service.start();
              } catch(DuplicateServiceException e) {
                   e.printStackTrace();
              } catch(BindException e) {
                   e.printStackTrace();
         public void startup() {
              window = new JFrame("SERVICE TEST! :D");
              window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
              window.addWindowListener(new WindowAdapter() {
                   public void windowClosed(WindowEvent e) {
                        service.shutdown();
              window.setVisible(true);
         public void shutdown() {
              System.out.println("Application shutdown");
              window.dispose();
         public void invoke() {
              System.out.println("Another instance tried to startup");
              window.toFront();
    }

  • Implementing Event listeners in Oracle ADF

    I have a selectonechoice UI component by which the user selects the user name and an UI table component which displays all the documents the user has access to. There are three tables involved 1) User 2) Access 3) Documents. USER table has a FK relation to ACCESS table. The ACCESS table has FK relation to DOCUMENTS table.
    I have written two SQL queries/view objects (userView) to get the user name and another join query (userAccessView) to get the document names that a particular user has access to.
    I want to link the two UI components such that when the selectonechoice UI component changes value, the table UI component should display document list has the user has access to.
    Is there any sample example of how to implement the functionality using Oracle ADF? Or any suggestion on how to do it.
    Regards
    Thomas

    You should be able to achieve this with PPR - for example see this demo of the navigation list:
    http://blogs.oracle.com/shay/2008/11/the_navigation_list_select_som.html

  • How to implement a Session Object.

    Hi,
    If anybody show me any example of how to implement
    session object so that I can store any parameters such as user id and use it later on. And also if there is any good web site for reference about using session object.
    thanks

    You can use the the session.setAttribute and session.getAttribute methods.
    For example let's say you would want to store a username in the session after a user has logged on:
    String usrname = request.getParameter("username");
    session.setAttribute("myStoredUsername", usrname);
    you can then retrieve it using the get method. Remember that the entities stored inside a session object are generic objects and need to be cast to be used:
    String usrname2 = (String)session.getAttribute("username");
    Hope this helps
    Chelman

  • Looking for example of seurity domains

    I'm looking for examples of code for implementing issuer security
    domains as well as application providor domains. Having read the
    GP documentation it seems rather strait forward, but I would like
    still like an example if anyone knows of any. In particular one
    thay may have delegation. Any help would be appreciated.
    Alwyn

    I would recommend you contact a vendor because they issuer for the ISD. If you want to become an ISD, then you'll have to organize the applet to conform to your specifications.
    Also, you need to contact a vendor because to perform delegation is outside the realm of developer cards. In other words, I don't know of any vendor that provides delegation implementation with developer cards.

Maybe you are looking for