Use of synchronized queue for java socket communications

Hi all,
We have a need for a server socket application (stand alone java application) to process just one command per time coming from a java socket client (JSP Web application). There are a lot of users accessing the java socket client, but the server socket can only handle one command per time, so there is a need of a queue type, so users will have to wait for their time.
We've been told that we can use "synchronized Queue", but we don't know what it is and how to use. A URL, book etc. with sample code would assist us, since we are new to both java socket communication and queue of commands.
Can anyone assist us
cheers
Trajano
P.S.
The server socket java application has two threads:
1st thread handles the java socket communication;
2nd thread is a RS-232 serial driver that communicates to several micro-controllers connected on a multi-drop.
JSP web app client socket users can issue various commands at the same time to the java server socket app, however the server can only service one command per time (just one RS-232 COM1 serial port available). The commands have to somehow be added to a queue for processing.

I do not have the experience to offer advice. But I just happened to be reading today about Collections.synchronizedList.
import java.util.List;
import java.util.LinkedList;
import java.util.Collections;
public class Queue {
   private List queue;
   public Queue() {
      queue = Collections.synchronizedList(new LinkedList());
   public Object removeItem() throws InterruptedException {
      synchronized (queue) {
         while (queue.isEmpty())
            queue.wait();
         return queue.remove(0);
   public void addItem(Object item) {
      synchronized (queue) {
         queue.add(item);
         queue.notifyAll();
class Test {
   public static void main(String[] args) {
      final Queue queue = new Queue();
      //start a thread to process items from the queue
      Runnable work = new Runnable() {
         public void run() {
            try {
               Object item = queue.removeItem();
               //do something with item
            } catch (InterruptedException e) {
               //handle this
      Thread worker = new Thread(work);
      worker.start();
}Reference: Java Thread Programming, Paule Hyde
Also, here is Doug Lea's library,
http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html

Similar Messages

  • What are the pre-requisite for JAVA Proxy communication?

    What are the pre-requisite for JAVA Proxy communication?

    Hi,
    You can install the Java proxy runtime on the SAP J2EE Engine Release 6.40 SP5 or higher.
    The messaging system that the Java proxy runtime uses to send messages to the Integration Server must also be installed on the J2EE server.
    To send messages from a J2EE application, the application must be programmed against beans that encapsulate all details about the Java runtime. The following classes are generated:
    ·        Proxy classes that send or receive messages using the Java proxy runtime.
    ·        Bean classes as an outer shell that conform to the J2EE standard. The beans call the proxy classes for communication.
    The classes must be deployed on the J2EE server together with their J2EE application
    see this link for the example scenario http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f272165e-0401-0010-b4a1-e7eb8903501d

  • Problems uninstalling Forte for java 4 community edition

    I just installed Forte for java 4 community edition at work, and when i tried to uninstalled it with add/remove programs from control panel. And the uninstall wizard start but then a Sun window apper and it is written, uninstalling and the uninstall program seems to be frozen.

    i have the same problem, reading the documentation it seems you got to run the installer again and you ll get prompted with the "file deletion confirmation"
    too bad i have a self-installing package and i don't get the prompt...
    guesses anyone?

  • How to create a report with data using the Crystal Reports for Java SDK

    Hi,
    How do I create a report with data that can be displayed via the Crystal Report for Java SDK and the Viewers API?
    I am writing my own report designer, and would like to use the Crystal Runtime Engine to display my report in DHTML, PDF, and Excel formats.  I can create my own report through the following code snippet:
    ReportClientDocument boReportClientDocument = new ReportClientDocument();
    boReportClientDocument.newDocument();
    However, I cannot find a way to add data elements to the report without specifying an RPT file.  Is this possible?  I seems like it is since the Eclipse Plug In allows you to specify your database parameters when creating an RPT file.
    is there a way to do this through these packages?
    com.crystaldecisions.sdk.occa.report.data
    com.crystaldecisions.sdk.occa.report.definition
    Am I forced to create a RPT file for the different table and column structures I have? 
    Thank you in advance for any insights.
    Ted Jenney

    Hi Rameez,
    After working through the example code some more, and doing some more research, I remain unable to populate a report with my own data and view the report in a browser.  I realize this is a long post, but there are multiple errors I am receiving, and these are the seemingly essential ones that I am hitting.
    Modeling the Sample code from Create_Report_From_Scratch.zip to add a database table, using the following code:
    <%@ page import="com.crystaldecisions.sdk.occa.report.application.*"%>
    <%@ page import="com.crystaldecisions.sdk.occa.report.data.*"%>
    <%@ page import="com.crystaldecisions.sdk.occa.report.document.*"%>
    <%@ page import="com.crystaldecisions.sdk.occa.report.definition.*"%>
    <%@ page import="com.crystaldecisions.sdk.occa.report.lib.*" %>
    <%@ page import = "com.crystaldecisions.report.web.viewer.*"%>
    <%
    try { 
                ReportClientDocument rcd = new ReportClientDocument();
                rcd.newDocument();
    // Setup the DB connection
                String database_dll = "Sqlsrv32.dll";
                String db = "qa_start_2012";
                String dsn = "SQL Server";
                String userName = "sa";
                String pwd = "sa";
                // Create the DB connection
                ConnectionInfo oConnectionInfo = new ConnectionInfo();
                PropertyBag oPropertyBag1 = oConnectionInfo.getAttributes();
                // Set new table logon properties
                PropertyBag oPropertyBag2 = new PropertyBag();
                oPropertyBag2.put("DSN", dsn);
                oPropertyBag2.put("Data Source", db);
                // Set the connection info objects members
                // 1. Pass the Logon Properties to the main PropertyBag
                // 2. Set the Server Description to the new **System DSN**
                oPropertyBag1.put(PropertyBagHelper.CONNINFO_CRQE_LOGONPROPERTIES, oPropertyBag2);
                oPropertyBag1.put(PropertyBagHelper.CONNINFO_CRQE_SERVERDESCRIPTION, dsn);
                oPropertyBag1.put("Database DLL", database_dll);
                oConnectionInfo.setAttributes(oPropertyBag1);
                oConnectionInfo.setUserName(userName);
                oConnectionInfo.setPassword(pwd);
                // The Kind of connectionInfos is CRQE (Crystal Reports Query Engine).
                oConnectionInfo.setKind(ConnectionInfoKind.CRQE);
    // Add a Database table
              String tableName = "Building";
                Table oTable = new Table();
                oTable.setName(tableName);
                oTable.setConnectionInfo(oConnectionInfo);
                rcd.getDatabaseController().addTable(oTable, null);
        catch(ReportSDKException RsdkEx) {
                out.println(RsdkEx);  
        catch (Exception ex) {
              out.println(ex);  
    %>
    Throws the exception
    com.crystaldecisions.sdk.occa.report.lib.ReportSDKException: java.lang.NullPointerException---- Error code:-2147467259 Error code name:failed
    There was other sample code on SDN which suggested the following - adding the table after calling table.setDataFields() as in:
              String tableName = "Building";
                String fieldname = "Building_Name";
                Table oTable = new Table();
                oTable.setName(tableName);
                oTable.setAlias(tableName);
                oTable.setQualifiedName(tableName);
                oTable.setDescription(tableName) ;
                Fields fields = new Fields();
                DBField field = new DBField();
                field.setDescription(fieldname);
                field.setHeadingText(fieldname);
                field.setName(fieldname);
                field.setType(FieldValueType.stringField);
                field.setLength(40);
                fields.add(field);
                oTable.setDataFields(fields);
                oTable.setConnectionInfo(oConnectionInfo);
                rcd.getDatabaseController().addTable(oTable, null);
    This code succeeds, but it is not clear how to add that database field to a section.  If I attempt to call the following:
    FieldObject oFieldObject = new FieldObject();
                oFieldObject.setDataSourceName(field.getFormulaForm());
                oFieldObject.setFieldValueType(field.getType());
                // Now add it to the section
                oFieldObject.setLeft(3120);
                oFieldObject.setTop(120);
                oFieldObject.setWidth(1911);
                oFieldObject.setHeight(226);
                rcd.getReportDefController().getReportObjectController().add(oFieldObject, rcd.getReportDefController().getReportDefinition().getDetailArea().getSections().getSection(0), -1);
    Then I get an error (which is not unexpected)
    com.crystaldecisions.sdk.occa.report.lib.ReportDefControllerException: The field was not found.---- Error code:-2147213283 Error code name:invalidFieldObject
    How do I add one of the table.SetDataFields()  to my report to be displayed?
    Are there any other pointers or suggestions you may have?
    Thank you

  • How to use spellchecker in webdynpro for java

    Hi
    I need to add the functionality for spellcheck in webdynpro for java...
    Plz help
    Regards
    Dibya

    Hi
    What exectly you want to check(is there any letter drafting / mail functionality in wd dynpro ?)
    Webdynpro itself doesn't have this feature but you can try a workaround .
    1. Use API in External Library project ([Spell check API|http://sourceforge.net/projects/jazzy]).
    2. use this DC in WD component , now when ever user writes , iinvolve this API's method to check.
    (Its  a workaround you have to to the R & D).
    Best Regards
    Satish Kumar

  • How to use BAPI in webdynpro for java application

    Hi all,
    Please help in getting started with calling a BAPI in a webdynpro for java application. I have got only the content needed to call a BAPI in a webdynpro for abap application but not in java. Kindly provide me some documents if possible.
    Thanks in advance

    Hi ,
    U have Created One Bapi u want to work with web Dyn pro for java Application Right .
    U need the Following
    1) NWDS (Netweaver Devloper Studio )
    2) jdk1.4 or Above installed in your system .
    After Installation of NWDS .
    1) Just Take J2EE Enginee Details
      a) Go to Window -> preferences  -> J2ee Enginee - > give ur port number , Host name Details . and click finsh .
    Go To Web Dyn Pro Perspective Click onj2EE engine .
    Click On Refresh U will see Green Colour button .
    Now ur Ready to import Ur BAPI .
    1) Go to File -> New -> Project - > Web Dyn pro Project -.
    Give Name , pkg Name Click On Finish .
    2) Expand ur project hirarchy -> go TO Application -> Right Click -> Create Application - > Give Application name and Pkg name -> Click on Finish .
    3) Now ur View And Controller Are Created by Default .
    4) Go to Model-> Right Click on it-> Create Model -> Give Model Name & Pkg name Should diff from Application pkg the Click On Next
    a) Here u have to Two JCo Destination Name Like Model Data And Meta data & R/3 System Details like System Number , Host name  Etc -> then Click on next .
    b) Here u will text filed where u want to search for ur Required BAPI . Type ur BAPI Name Click on Search . Ur bapi will be displyed In Down . click on Next .
    c) Now Ur model is Importedint into NWDS .Map ur model data To Controller and Controller Element to View Elements .
    After ur Model .
    Go to -> Project Name -> Right Click -> go to -> Deploy New Archive .
    after wards u have to go Apllication -> Right click -> deploy and Run .
    ur output will be displyed thru Browser .
    Thats it
    Regards ,
    venkat

  • Using dictionary in Webdynpro for Java

    Hello, I'm very newbie in Webdynpro in Java and I have an issue,
    I need that a function returns me 2 fields in 2 variables, but this is not possible in Java, for that reason I have thought to create a structure in the dictionary with 2 fields in order to return one only parameter.
    My problem is that I don't know to declare a strucutre in the implementantion, something like :
    structure TypeData Name{}
    or
    struc{}
    or something like that.
    Do anyone know how to declare structure from the Dictionary in my implementantion's method or any good idea to solve this?
    Thanks in advance

    Hi Jorge,
    What you want to do with the two attributes? If these attributes attached to any UI fields then create two context attributes and assign the values to these attributes in the function. Otherwise, if you want to simply use the values then
    - You can concatinate two values into one string with some special character
    ( ContactID"#"ContacName) and return the string
    - You can return a String array with size 2.
    - Add two values to a ArrayList and return the ArrayList.
    Regards
    Abhilash

  • How to use Http test Client  for Java Client Proxy Scenario

    Hi,
    I build a scenario using Java Client Proxy where JSP as my FrontHand.
    Can I know that whether i can use Http Test Client in place of JSP for sending data and getting response back. If yes than how can i implement this ?
    Regards,
    Abhi

    Hi,
    with Http Test Client you post your messages
    directly to the Integration Engine (not using adapter framework)
    so you can use Http Test Client to simulate any message
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • Java WD and Socket Communication

    Hi,
    Is it possible to use Java Socket Communication with Java Web Dynpro. Or if not what is the best approach to have a Java Socket program integrated with a Web Dynpro Communication.
    Basically, I have an application which provides API for communication via Java Sockets.And this needs to be integrated in our SAP application.
    Thanks,
    CD

    Hi,
    You are currently using JCO to "Connect to a Remote System" - JCO will connect to a back-end with the main purpose of "executing BAPI's" in it.
    When you move to WebDynpro, you have what SAP calls Adaptive RFC Model - this will create a "Model Entity" in you WD Project that will do the same thing your JCO does.
    Assume your JCO now calls "BAPI_GET_FLIGHTS", to return the Flights that are currently available - In your newly create WDP Project, you will manually specify what back-end you wanna use when "Importing" and you will tell also the BAPI name. WDP will generate the class structure that you need in order to execute that function.
    JCO is what SAP created to execute BAPI's. JCO can be used by any "Java" like application that needs to connect to the back-end. But when you move to WDP, you don't need to use this anymore - You will use WDP Models.
    Youi will still need your JCO Destinations created in the Application Server, so behind the scenes WDP creates a "layer" so you don't need to code the JCO calls manually.
    Regards,
    Daniel

  • Why Web services are used to send data not HTTP in Web dynpro for Java?

    Is Web Dynpro for Java supports Web service , RFC as communication to other systems why http cannot be used in Wweb dynpro for java.........
    Thanks and Regards,
    CSP

    Hi Pradeep,
    Yes, Web Dynpro java supports web service, you can expose your web service as RFC Model to
    communicate with others system. As per as HTTP is concern we don't have any
    supportive method in web Dynpro. Insted of HTTP we use context in web dynpro to communicate.
    Thanks
    Anup

  • Can't use UTF-16 encoding with XML Parser for Java v2.

    This is my XML Document:
    <?xml version="1.0" encoding="UTF-16" ?>
    <Content>
    <Title>Documento de Prueba de gestin de contenidos.</Title>
    <Creator>Roberto P     rez Lita</Creator>
    </Content>
    This is the way in which i parse de document:
    DOMParser parser=new DOMParser();
    parser.setPreserveWhitespace(true);
    parser.setErrorStream(System.err);
    parser.setValidationMode(false);
    parser.showWarnings(true);
    parser.parse(
    new FileInputStream(new File("PruebaA3Ingles.xml")));
    I've got this error:
    XML-0231 : (Error) Encoding 'UTF-16' is not currently supported.
    I am using the XML Parser for Java v2_0_2_5 and I am a little
    confused because the documentation says that the UTF-16 encoding
    is supported in this version of the Parser.
    Does anybody know how can I parse documents containing spanish
    accents?
    Thanks in advance.
    Roberto P     rez.
    null

    Oracle just uploaded a new release of V2 Parser. It should
    support UTF-16.
    Yet, other utilities still have some problems with UTF-16
    encoding. Seems we just
    have to wait this one out.
    BTW, I'm trying to use Japanese. We, also, have some problems
    with JServer.
    Roberto P     rez (guest) wrote:
    : This is my XML Document:
    : <?xml version="1.0" encoding="UTF-16" ?>
    : <Content>
    : <Title>Documento de Prueba de gestin de contenidos.</Title>
    : <Creator>Roberto P     rez Lita</Creator>
    : </Content>
    : This is the way in which i parse de document:
    : DOMParser parser=new DOMParser();
    : parser.setPreserveWhitespace(true);
    : parser.setErrorStream(System.err);
    : parser.setValidationMode(false);
    : parser.showWarnings(true);
    : parser.parse(
    : new FileInputStream(new File("PruebaA3Ingles.xml")));
    : I've got this error:
    : XML-0231 : (Error) Encoding 'UTF-16' is not currently supported.
    : I am using the XML Parser for Java v2_0_2_5 and I am a little
    : confused because the documentation says that the UTF-16
    encoding
    : is supported in this version of the Parser.
    : Does anybody know how can I parse documents containing spanish
    : accents?
    : Thanks in advance.
    : Roberto P     rez.
    null

  • Data Warehouse:java.lang.NoClassDefFound Error while using OWB API for Java

    I was writing code to use the OWB APIs for Java:
    I have imported the folowing files:
    oracle.owb.connection.RepositoryManager;
    oracle.owb.connection.OWBConnection;
    oracle.owb.connection.ConnectionFailureException;
    when jvm tries to get instance of Repositary Manger by the following code
    reposManager = RepositoryManager.getInstance();
    I get the following exception:
    Exception in thread main
    java.lang.NoClassDefFoundError: com/objectspace/jgl/HashMap
    I have checked my OWB and Java environment but I cant locate com/objectspace/jgl.jar file. Can some one tell me were this jar is located in so i can import it.

    Either use some criteria you develop related to one of the keys on the table or use some sort of record limiting method.
    Note the method of limiting will vary related to the database you are using. You will have to look at the documentation.
    For example I am told this will work in MySQL to get 200 records starting at record 100.
    SELECT * FROM myTable ORDER BY whatever ASC LIMIT 100,200
    Because you are running out of memroy I assume the table is large,
    I am not sure what the impact of the above will have on performance because if in the above if the order by is not based on an index at the server level all the records will be selected and sorted before the records are limited.
    I would make sure you have an appropriate index.
    If you use the advanced search over the user forums using "resultset paging" and possibility the database you are using you should be able to get some ideas.
    I hope this makes sense to you.
    rykk

  • Java.lang.NoClassDefFound Error while using OWB API for Java

    I was writing code to use the OWB APIs for Java:
    I have imported the folowing files:
    oracle.owb.connection.RepositoryManager;
    oracle.owb.connection.OWBConnection;
    oracle.owb.connection.ConnectionFailureException;
    when jvm tries to get instance of Repositary Manger by the following code
    reposManager = RepositoryManager.getInstance();
    I get the following exception:
    Exception in thread main
    java.lang.NoClassDefFoundError: com/objectspace/jgl/HashMap
    I have checked my OWB and Java environment but I cant locate com/objectspace/jgl.jar file. Can some one tell me were this jar is located in so i can import it.

    Do you have JAVA_HOME set in your environment?
    What's the result of
    env
    Make sure DBCA is calling the java under $ORACLE_HOME not from other installation.

  • Problems using - EPP RTK for Java

    Hello, I'm having problems using the EPP RTK for Java, I've got the message below:
    java.io.IOException: No ssl props location specified
         at com.tucows.oxrs.epp0402.rtk.transport.EPPTransportTCPTLS.connect(EPPTransportTCPTLS.java:116)
         at br.com.redenetworks.temp.Temp.<init>(Temp.java:21)
         at br.com.redenetworks.temp.Temp.main(Temp.java:35)
    Please, someone could help me?
    Thanks a lot,
    F�bio Kazahaya.

    Como vc deve saber eu virei Gerente de Copyright e Propriedade Intellectual do setor RBS da empresa.
    Eu encontrei esse artigo hoje e estou sendo for�ado a denunciar essas informa��es por quebra de copyright da prpriedade intellectual da empresa.
    Eu te conhe�o como um funcionario da IBM e estou muito desapontado
    Aguarde a IBM entrar em contato contigo.
    Abra�os

  • C# socket and java socket

    hello
    i am a java programmer,recently we got a project,that need the c# app to communicate with java app ,i select the socket as intermediate.
    i notice that java socket term is divided into " blocking" and "non-blocking",the latter come from jdk1.4, the c# socket is devided into "synchronized" and "asynchronized" and both of them are blocking,
    in my project,i have tried synchronized c# socket coorperating to blocking java socket,it works well..but when i modify the c# app to ASYNCHRONIZED socket,my system DON'T works well,i don't know why? i can't find asynchronized socket in java,.i learn that nio socket is nonblocking, is it asynchronized?
    who can tell me what's is the best solution for the socket communication between java and c#?

    yes,i have read them,but it only tell me the communication between java apps,and DON'T tell me any clue about c# socket.

Maybe you are looking for

  • How to align or sync video and audio?

    In Premiere 13,  once I have added a video/audio clip and then either slow down the clip or add photos in between the clip causes the video and audio to be out of sync.  How does one re-align or re-sync the clip once it has been edited?  Thanks

  • Problems with image scaling

    I'm facing a real problem with image scaling I've used several algorithms but it all has defects but the most common thing is the out of memory error after several enlargments... does any one know a solution... note: I've used several packages to do

  • I downloaded the trial version of Lightroom.  The file downloaded but does not execute

    I downloaded CreativeCloudSetup.exe.  I clicked on the the file but nothing happens.  My Task Manager shows that the file is in memory but not doing anything.

  • Why does Skype do not allow to delete conversation with single contact?

    IT is a simple question only if Skype can be HONEST and answer it truthfully.. What is the reason that we can not have a feature where we can delete the single conversation with one contact. Now the option skype has does not allow that. You either de

  • Ifs connect to remote ifs

    Hi, I want to program my own login to ifs in Java. But i don't known how to connect to the ifs-server. The ifs-server is a other maschine where i work on. By the connect command (in 9ifs/samplecode/oracle/ifs/examples/devdoc/helloworld/HelloWorld.jav