hi, i developed a client server program in which the client sending messages selected from oracle DB to server and getting back the response...iam using two threads 1 for readin DB values 2 nd to send to client.this i have to configure for a particular time ...ie; if i configure it for send 13 message in 1 sec it should send accordinly and if i configure it for 15 it should send 15 message in a second ...what will i do for that..i am pasting my pgm here please anybody help... ------------------- TCPServer.java import java.io.*; import java.net.*;
class TCPServer { public static void main(String[] args) { try {
ServerSocket welcomeSocket = new ServerSocket(8003);
while (true) { System.out.println("time to get connection socket-->"+System.currentTimeMillis()); Socket connectionSocket = welcomeSocket.accept(); System.out.println(" connected to " +connectionSocket.getInetAddress() + ":" +connectionSocket.getPort()); System.out.println("time after getting connection socket-->"+System.currentTimeMillis()); BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); DataOutputStream outToClient =new DataOutputStream(connectionSocket.getOutputStream());
class reading extends Thread//--thread to read from DB { public int m; public static Collection dbList = null; static String c1; static String c2; public static int w;//--number of rows ResultSet rs;
public static Collection collect;//--linklist
public synchronized void run() {
System.out.println("reading1................."); dbList= new LinkedList(); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection con; con=DriverManager.getConnection("Jdbc:Odbc:myoracle","scott","tiger"); Statement stmt = con.createStatement (); long startTime1=System.currentTimeMillis();
String query = "select MESSAGEID from s1 where ROWNUM<=13 and MESSAGESTATUS=0";//13==> number of msg need to send within a second rs=stmt.executeQuery(query);
while (rs.next()) { w = rs.getRow(); c1=rs.getString("MESSAGEID"); dbList.add(c1);
}
con.close(); list(dbList); } catch(Exception e) {System.out.println("This is exception"+e);}
} void list(Collection dbList)//--to get the link list in sending { collect=dbList;//-- link list copy System.out.println("collect====>"+collect); } }
class sending extends reading { public static int m; public static Collection dbList = null;//--linklist static String c1; static String c2; public static int w; static ResultSet rs; static ResultSet rs1;
SimpleDateFormat simpledateformat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");//--4 lines to print out the date time Date date1 = new Date(); String datetime=simpledateformat.format(date1); System.out.println("=====Date format===>"+datetime);
String query = "update s1 set MESSAGESTATUS='1', senddatetime =sysdate where MESSAGEID="+modifiedSentence;//--after sending change db dbconnection db=new dbconnection(query);//--DB connection System.out.flush(); itr.remove(); collect.remove(0);//--remove from link list System.out.println("collect after sending==>"+collect); }
class TCPClient extends Thread { public static int m; public static Collection dbList = null; static String c1; static String c2; public static int w; static ResultSet rs; public static int loadMsgs;
public static void main(String args[]) throws Exception {
I would probably be in a position to answer that question, I play with JDBC and Java 12 hours a day, 5 days a week.
Unfortunately, I don't have the patience to go through code that messy.
Repost your code indented properly with the appropriate java tags and depending on the time of day, you may get a response from one of the users.
Alot of extremely competent people frequent this forum. Mathius, experts like Matt G, etc... If only you folks actually formatted your code, you may get quicker response rates
hi, this is taking much time to communicate through the socket..what can we do for that...how to control the socket communication time?????!!!!!!!!!!!!!!
I think you should consider Spike's answer... None is going to go through your code to help you ... Moreover slow communicaztion over a network can have many reasons ... So the quick wins you could have are : [*] Use Thread to have multiple sockets in parallel. But this means you have NO bandwidth limitations [*] Use java.util.zip.GZIPOutputStream / java.util.zip.GZIPInputStream if yr content can be compressed.
\T,
p.s. : I feel your multiple posts are really disrespectfull of people here !
hi , here i am using only one client and server... so is multiple socket in parallel possible for only one client!!!???could u please give me some examples or links for this...