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,
BenI'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.
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
krishnaHi 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 -
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! RichI 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 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
Palyou 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.
CliveHere 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 Badis 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-LussierI 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
ThomasYou 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.
thanksYou 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.
AlwynI 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
-
How to dissociate an iOS device from iTunes / iBooks purchase account
I want to pass my iPhone 4S to a neighbor's child after wiping my data from it. However, I have read in the tech press that this process does not dissociate one's iTunes / iBooks account from the device. I want to ensure that the device cannot be
-
I am trying to download songs onto my PC it gets to about 85% downloaded and then freezes I have to turn off and restart but then I have been charged for the item but it is not available in my downloads can anyone help?
-
Cutting text or other from a pdf document in preview
Hi, Cropping a PDF document in is simple, if you want what is OUTSIDE your crop to be removed. What do I do when I want to remove part of what is in a document and leave the rest - ie crop it out, not make it the focus ? Help appreciated.
-
BB Z10 BBM Group updates and notifications not showing up in Hub?
BBM Group updates and notifications not showing up in Hub? The notifications are turned ON in Group settings. And all BBM notifications are enable in the Hub, still nothing shows up. Picture comments, addition, status updates simply dont show up. My
-
Download report as compressed/zip file
Hi, i was wondering if it is possible to download a report compresed/(zip file). Some reports are more then 10MB and it's sometimes timeconsuming to download it to you local machine via a slow internet connection. If this is possible.. Is it then als