<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-109  評論-187  文章-25  trackbacks-0
      2007年8月10日
    利用免費的英語角把英語練好

    北京  也樂英語為了滿足廣大英語愛好者的需要特推出周末免費英語角服務,

    北京英語角的組織形式如下:

        1:由也樂英語派出一名外教和一名助理負責組織英語角的活動。

        2: 英語角每周組織一次活動,也樂英語培訓學校提供一間教室為大家的活動場所。

        3:英語愛好者可以免費參加英語角的活動,不收取任何費用,此活動是公益活動,也樂英

    語不收取任何費用,也不限制參加次數。

        4:也樂英語免費提供給英語愛好者茶水、咖啡、以及活動所采用的書籍報紙。

        5:每周一到2個話題,由外教提前一周告訴大家,大家可以簡單準備,以便在課堂上
            跟外教以及同學交流。
       
        6:外教會糾正大家的發音、語法、詞匯上的錯誤,會形成一些總結,也希望大家能夠暢所

    欲言,大膽的說英語。

         7:所有參加英語角的愛好者,請您在交流期間把手機調為靜音。

         也樂英語地址:北京豐臺區馬家堡西路15號 時代風帆大廈2區1901
         交通狀況:地鐵四號線角門西站A口上樓即可。 51、501、54、529、698、646、707 嘉園

    二里東門下車
         聯系電話:010-58423871  15330275871

          此活動由于報名數量眾多,所以需要大家提前預約。
          也樂英語網站:www.yellenglish.com
          也樂英語 爭做北京最好的英語角.
    posted @ 2011-06-19 09:35 小小程序程序員混口飯吃 閱讀(2137) | 評論 (0)編輯 收藏
    我認為最大的沖擊莫過于 惠普,oracle跟惠普的直接競爭會加大,從合作變為競爭,我認為惠普如果不收購redhat來對抗,未來肯定落下風!
    posted @ 2009-04-22 09:56 小小程序程序員混口飯吃 閱讀(644) | 評論 (0)編輯 收藏
         摘要: 上篇文章講述了jacorb 的配置,本章講敘其應用,隨后的幾篇文章會重點講述corba的開發   JACORB開發以及corba的請求方式:    JacORB的應用開發一般分為以下五步: 1.寫IDL接口定義 2.編譯IDL接口定義生成Java類 3.實現步驟2中生成的接口 4.寫服務器啟動類,并注冊到ORB 5.寫客戶端去獲取服務對象引用 &nb...  閱讀全文
    posted @ 2007-11-22 10:41 小小程序程序員混口飯吃 閱讀(8315) | 評論 (2)編輯 收藏

                       how to setup jacorb dev env
    1:download JacORB_2_2

           http://www.jacorb.org/download.html
      download ant
           http://ant.apache.org/bindownload.cgi

    2:extact JacORB_2_2.jar to d:\JacORB_2_2

    3:setup sys environment

           set ANT_HOME=
           set JAVA_HOME=
           set JACORB_HOME=d:\JacORB_2_2
           set PATH=%PATH%;%ANT_HOME%\bin;%JAVA_HOME%\bin;%JACORB_HOME%\bin;
           set CLASSPAHT=.;%CLASSPAHT%;%ANT_HOME%\lib\ant.jar;%JACORB_HOME%\lib\jarorb.jar;%JACORB_HOME%\lib\idl.jar\;%JACORB_HOME%\lib\logkit-1.2.jar

    4:rename %JACORB_HOME%\etc\jacorb_properties.template to %JACORB_HOME%\etc\jacorb.properties
      and modify the 50th line to 53th line to
     
           #ORBInitRef.NameService=file:/y:/nsiona.ref
          
    ORBInitRef.NameService=file://d://test//NS_Ref
          
    #ORBInitRef.NameService=http://www.x.y.z/~user/NS_Ref
          
    #ORBInitRef.TradingService=http://www.x.y.z/~user/TraderRef
     
      modify 618th line to
           jacorb.naming.ior_filename=d://test//NS_Ref

    5:rename  %JACORB_HOME%\jacotemplate.bat to %JACORB_HOME%\jaco.bat
     
      and modify related env variable
     
      rename   %JACORB_HOME%\idltemplate.bat to %JACORB_HOME%\idl.bat
      
      and modify related env variable

     

    6:  use ant compile and build idl and java


         cd  %JACORB_HOME%\demo\grid  

         run ant
       
         the generate class file in %JACORB_HOME%\classes  and generated java file in %JACORB_HOME%\demo\grid


    7: open a new cmd window:
              cd %JACORB_HOME%   ns
     
       you can see the following result:   
           [ configuration jacorb loaded from file %JAORB_HOME%\etc\jacorb.properties]

       open a new cmd window:
              cd %JACORB_HOME%   jaco demo.grid.Server
      you can see the following result:   
      [ configuration jacorb loaded from file %JAORB_HOME%\etc\jacorb.properties]
      
      open a new cmd window:
              cd %JACORB_HOME%   jaco demo.grid.client
        you can see the following result:   
     
      [ configuration jacorb loaded from file D:\work\nj\JACORB\etc\jacorb.properties]
       Height = 31
       Width = 14
       Old value at (30,13): 0.21
       Setting (30,13) to 470.11
       New value at (30,13): 470.11
       MyException, reason: This is only a test exception, no harm done :-)
       done.

    posted @ 2007-11-21 10:36 小小程序程序員混口飯吃 閱讀(4263) | 評論 (4)編輯 收藏
     
    oracle的分析函數over 及開窗函數
    一:分析函數over
    Oracle從8.1.6開始提供分析函數,分析函數用于計算基于組的某種聚合值,它和聚合函數的不同之處是
    對于每個組返回多行,而聚合函數對于每個組只返回一行。
    下面通過幾個例子來說明其應用。                                       
    1:統計某商店的營業額。        
         date       sale
         1           20
         2           15
         3           14
         4           18
         5           30
        規則:按天統計:每天都統計前面幾天的總額
        得到的結果:
        DATE   SALE       SUM
        ----- -------- ------
        1      20        20           --1天           
        2      15        35           --1天+2天           
        3      14        49           --1天+2天+3天           
        4      18        67            .          
        5      30        97            .
         
    2:統計各班成績第一名的同學信息
        NAME   CLASS S                         
        ----- ----- ----------------------
        fda    1      80                     
        ffd    1      78                     
        dss    1      95                     
        cfe    2      74                     
        gds    2      92                     
        gf     3      99                     
        ddd    3      99                     
        adf    3      45                     
        asdf   3      55                     
        3dd    3      78              
       
        通過:   
        --
        select * from                                                                       
        (                                                                            
        select name,class,s,rank()over(partition by class order by s desc) mm from t2
        )                                                                            
        where mm=1
        --
        得到結果:
        NAME   CLASS S                       MM                                                                                        
        ----- ----- ---------------------- ----------------------
        dss    1      95                      1                      
        gds    2      92                      1                      
        gf     3      99                      1                      
        ddd    3      99                      1          
       
        注意:
        1.在求第一名成績的時候,不能用row_number(),因為如果同班有兩個并列第一,row_number()只返回一個結果          
        2.rank()和dense_rank()的區別是:
          --rank()是跳躍排序,有兩個第二名時接下來就是第四名
          --dense_rank()l是連續排序,有兩個第二名時仍然跟著第三名
         
         
    3.分類統計 (并顯示信息)
        A   B   C                      
        -- -- ----------------------
        m   a   2                      
        n   a   3                      
        m   a   2                      
        n   b   2                      
        n   b   1                      
        x   b   3                      
        x   b   2                      
        x   b   4                      
        h   b   3
       select a,c,sum(c)over(partition by a) from t2                
       得到結果:
       A   B   C        SUM(C)OVER(PARTITIONBYA)      
       -- -- ------- ------------------------
       h   b   3        3                        
       m   a   2        4                        
       m   a   2        4                        
       n   a   3        6                        
       n   b   2        6                        
       n   b   1        6                        
       x   b   3        9                        
       x   b   2        9                        
       x   b   4        9                        
      
       如果用sum,group by 則只能得到
       A   SUM(C)                            
       -- ----------------------
       h   3                      
       m   4                      
       n   6                      
       x   9                      
       無法得到B列值       
      
    =====

    select * from test

    數據:
    A B C
    1 1 1
    1 2 2
    1 3 3
    2 2 5
    3 4 6


    ---將B欄位值相同的對應的C 欄位值加總
    select a,b,c, SUM(C) OVER (PARTITION BY B) C_Sum
    from test

    A B C C_SUM
    1 1 1 1
    1 2 2 7
    2 2 5 7
    1 3 3 3
    3 4 6 6



    ---如果不需要已某個欄位的值分割,那就要用 null

    eg: 就是將C的欄位值summary 放在每行后面

    select a,b,c, SUM(C) OVER (PARTITION BY null) C_Sum
    from test

    A B C C_SUM
    1 1 1 17
    1 2 2 17
    1 3 3 17
    2 2 5 17
    3 4 6 17

     

    求個人工資占部門工資的百分比

    SQL> select * from salary;

    NAME DEPT SAL
    ---------- ---- -----
    a 10 2000
    b 10 3000
    c 10 5000
    d 20 4000

    SQL> select name,dept,sal,sal*100/sum(sal) over(partition by dept) percent from salary;

    NAME DEPT SAL PERCENT
    ---------- ---- ----- ----------
    a 10 2000 20
    b 10 3000 30
    c 10 5000 50
    d 20 4000 100

    二:開窗函數           
          開窗函數指定了分析函數工作的數據窗口大小,這個數據窗口大小可能會隨著行的變化而變化,舉例如下:
    1:     
       over(order by salary) 按照salary排序進行累計,order by是個默認的開窗函數
       over(partition by deptno)按照部門分區
    2:
      over(order by salary range between 5 preceding and 5 following)
       每行對應的數據窗口是之前行幅度值不超過5,之后行幅度值不超過5
       例如:對于以下列
         aa
         1
         2
         2
         2
         3
         4
         5
         6
         7
         9
       
       sum(aa)over(order by aa range between 2 preceding and 2 following)
       得出的結果是
                AA                       SUM
                ---------------------- -------------------------------------------------------
                1                       10                                                      
                2                       14                                                      
                2                       14                                                      
                2                       14                                                      
                3                       18                                                      
                4                       18                                                      
                5                       22                                                      
                6                       18                                                                
                7                       22                                                                
                9                       9                                                                 
                 
       就是說,對于aa=5的一行 ,sum為   5-1<=aa<=5+2 的和
       對于aa=2來說 ,sum=1+2+2+2+3+4=14     ;
       又如 對于aa=9 ,9-1<=aa<=9+2 只有9一個數,所以sum=9    ;
                  
    3:其它:
         over(order by salary rows between 2 preceding and 4 following)
              每行對應的數據窗口是之前2行,之后4行
    4:下面三條語句等效:           
         over(order by salary rows between unbounded preceding and unbounded following)
              每行對應的數據窗口是從第一行到最后一行,等效:
         over(order by salary range between unbounded preceding and unbounded following)
               等效
         over(partition by null)
    posted @ 2007-11-13 13:33 小小程序程序員混口飯吃 閱讀(50040) | 評論 (13)編輯 收藏

    由于一些原因,最近要復習一些東西,所以就把JMS的東西再復習一遍,以下便是例子

    jms 中最重要的幾個概念destination,ACKNOWLEDGE,subscribe,durable subscribe

    destination:topic queque
      queue簡單點說就是1:1 一個消息只能由一個consumer去消費,別的consumer來消費的時候已經沒了,先到先得
    topic簡單點說就是1:N 一個消息可以由多個consumer來消費,誰來消費都有
     subscribe,拿topic來說如果當前訂閱不是持久訂閱,只有再訂閱后生產者生產得消息才能被consumer得到,持久訂閱只要沒有被consumer消費,早晚會消費這個消息
     
     
     
     一下是幾個例子
     
     queuesend:queque消息產生
     queuereceive:queque消息得消費
     topicsend :topic消息得產生
     topicreceive1:topic消息的非訂閱
     topicrecieve2:topic消息的持久訂閱
     
     這個例子實在WEBLOGIC814上測試過的,當然要定義JMSSERVER,FACTORY,DESTINATION。
     
     
     
     QueueSend
     
     import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Hashtable;

    import javax.jms.JMSException;
    import javax.jms.Queue;
    import javax.jms.QueueConnection;
    import javax.jms.QueueConnectionFactory;
    import javax.jms.QueueSender;
    import javax.jms.QueueSession;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;

    public class QueueSend {
     // Defines the JNDI context factory.
     public final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";

     // Defines the JNDI provider url.
     public final static String PROVIDER_URL = " t3://localhost:7001";

     // Defines the JMS connection factory for the queue.
     public final static String JMS_FACTORY = "SendJMSFactory";

     // Defines the queue.
     public final static String QUEUE = "SendJMSQueue";

     private QueueConnectionFactory qconFactory;

     private QueueConnection qcon;

     private QueueSession qsession;

     private QueueSender qsender;

     private Queue queue;

     private TextMessage msg;

     /**
      * Creates all the necessary objects for sending messages to a JMS queue.
      *
      * @param ctx
      *            JNDI initial context
      * @param queueName
      *            name of queue
      * @exception NamingException
      *                if operation cannot be performed
      * @exception JMSException
      *                if JMS fails to initialize due to internal error
      */
     public void init(Context ctx, String queueName) throws NamingException,
       JMSException {
      qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
      qcon = qconFactory.createQueueConnection();
      qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
      queue = (Queue) ctx.lookup(queueName);
      qsender = qsession.createSender(queue);
      msg = qsession.createTextMessage();
      qcon.start();
     }

     /**
      * Sends a message to a JMS queue.
      *
      * @param message
      *            message to be sent
      * @exception JMSException
      *                if JMS fails to send message due to internal error
      */
     public void send(String message) throws JMSException {
      msg.setText(message);
      qsender.send(msg);
     }

     /**
      * Closes JMS objects.
      *
      * @exception JMSException
      *                if JMS fails to close objects due to internal error
      */
     public void close() throws JMSException {
      qsender.close();
      qsession.close();
      qcon.close();
     }

     /**
      * main() method.
      *
      * @param args
      *            WebLogic Server URL
      * @exception Exception
      *                if operation fails
      */
     public static void main(String[] args) throws Exception {
      try {
       InitialContext ic = getInitialContext();
       QueueSend qs = new QueueSend();
       qs.init(ic, QUEUE);
       readAndSend(qs);
       qs.close();
      } catch (Exception e) {
       e.printStackTrace();
      }
     }

     private static void readAndSend(QueueSend qs) throws IOException,
       JMSException {
      BufferedReader msgStream = new BufferedReader(new InputStreamReader(
        System.in));
      String line = null;
      boolean quitNow = false;
      do {
       System.out.print("Enter message (\"quit\" to quit): ");
       line = msgStream.readLine();
       if (line != null && line.trim().length() != 0) {
        qs.send(line);
        System.out.println("JMS Message Sent: " + line + "\n");
        quitNow = line.equalsIgnoreCase("quit");
       }
      } while (!quitNow);

     }

     private static InitialContext getInitialContext() throws NamingException {
      Hashtable env = new Hashtable();
      env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
      env.put(Context.PROVIDER_URL, PROVIDER_URL);
      return new InitialContext(env);
     }

    }


    QueueReceive

    import java.util.Hashtable;

    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageListener;
    import javax.jms.Queue;
    import javax.jms.QueueConnection;
    import javax.jms.QueueConnectionFactory;
    import javax.jms.QueueReceiver;
    import javax.jms.QueueSession;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;

    public class QueueReceive implements MessageListener {
     // Defines the JNDI context factory.
     public final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";

     // Defines the JNDI provider url.
     public final static String PROVIDER_URL = " t3://localhost:7001";

     // Defines the JMS connection factory for the queue.
     public final static String JMS_FACTORY = "SendJMSFactory";

     // Defines the queue.
     public final static String QUEUE = "SendJMSQueue";

     private QueueConnectionFactory qconFactory;

     private QueueConnection qcon;

     private QueueSession qsession;

     private QueueReceiver qreceiver;

     private Queue queue;

     private boolean quit = false;

     /**
      * Message listener interface.
      *
      * @param msg
      *            message
      */
     public void onMessage(Message msg) {
      try {
       String msgText;
       if (msg instanceof TextMessage) {
        msgText = ((TextMessage) msg).getText();
       } else {
        msgText = msg.toString();
       }

       System.out.println("Message Received: " + msgText);

    //   if (msgText.equalsIgnoreCase("123")) {
    //    synchronized (this) {
    //     quit = true;
    //     this.notifyAll(); // Notify main thread to quit
    //    }
    //   }
      } catch (JMSException jmse) {
       jmse.printStackTrace();
      }
     }

     /**
      * Creates all the necessary objects for receiving messages from a JMS
      * queue.
      *
      * @param ctx
      *            JNDI initial context
      * @param queueName
      *            name of queue
      * @exception NamingException
      *                if operation cannot be performed
      * @exception JMSException
      *                if JMS fails to initialize due to internal error
      */
     public void init(Context ctx, String queueName) throws NamingException,
       JMSException {
      qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
      qcon = qconFactory.createQueueConnection();
      qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
      queue = (Queue) ctx.lookup(queueName);
      qreceiver = qsession.createReceiver(queue);
      qreceiver.setMessageListener(this);
      qcon.start();
     }

     /**
      * Closes JMS objects.
      *
      * @exception JMSException
      *                if JMS fails to close objects due to internal error
      */
     public void close() throws JMSException {
      qreceiver.close();
      qsession.close();
      qcon.close();
     }

     /**
      * main() method.
      *
      * @param args
      *            WebLogic Server URL
      * @exception Exception
      *                if execution fails
      */

     public static void main(String[] args) throws Exception {

      InitialContext ic = getInitialContext();
      QueueReceive qr = new QueueReceive();
      qr.init(ic, QUEUE);

      System.out
        .println("JMS Ready To Receive Messages (To quit, send a \"quit\" message).");

      // Wait until a "quit" message has been received.
      synchronized (qr) {
       System.out.println("111111111111");
       while (!qr.quit) {
        try {
         System.out.println("2222222222");
         qr.wait();
         System.out.println("333333333");
        } catch (InterruptedException ie) {
        }
       }
      }
      qr.close();
     }

     private static InitialContext getInitialContext() throws NamingException {
      Hashtable env = new Hashtable();
      env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
      env.put(Context.PROVIDER_URL, PROVIDER_URL);
      return new InitialContext(env);
     }

    }

     

    TopicSend

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Hashtable;

    import javax.jms.JMSException;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import javax.jms.Topic;
    import javax.jms.TopicConnection;
    import javax.jms.TopicConnectionFactory;
    import javax.jms.TopicSession;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.jms.TopicPublisher;
    public class TopicSend {
     // Defines the JNDI context factory.
     public final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";

     // Defines the JNDI provider url.
     public final static String PROVIDER_URL = " t3://localhost:7001";

     // Defines the JMS connection factory for the queue.
     public final static String JMS_FACTORY = "SendJMSFactory";

     // Defines the queue.
     public final static String TOPIC = "SendJMSTopic";

     private TopicConnectionFactory tconFactory;

     private TopicConnection tcon;

     private TopicSession tsession;

     private TopicPublisher tsender;

     private Topic topic;

     private TextMessage msg;
     public static InitialContext ic ;

     /**
      * Creates all the necessary objects for sending messages to a JMS queue.
      *
      * @param ctx
      *            JNDI initial context
      * @param queueName
      *            name of queue
      * @exception NamingException
      *                if operation cannot be performed
      * @exception JMSException
      *                if JMS fails to initialize due to internal error
      */
     public void init(Context ctx, String queueName) throws NamingException,
       JMSException {
      tconFactory = (TopicConnectionFactory) ctx.lookup(JMS_FACTORY);
      tcon = tconFactory.createTopicConnection();
      tsession = tcon.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
      System.out.println(topic);
      topic = (Topic) ctx.lookup(queueName);
      System.out.println(topic);
      tsender = tsession.createPublisher(topic);
      msg = tsession.createTextMessage();
      tcon.start();
     }

     /**
      * Sends a message to a JMS queue.
      *
      * @param message
      *            message to be sent
      * @exception JMSException
      *                if JMS fails to send message due to internal error
      */
     public void send(String message) throws JMSException ,NamingException{
      System.out.println(topic+"-----------");
      msg.setText(message);
      tsender.publish(msg);
     }

     /**
      * Closes JMS objects.
      *
      * @exception JMSException
      *                if JMS fails to close objects due to internal error
      */
     public void close() throws JMSException {
      tsender.close();
      tsession.close();
      tcon.close();
     }

     /**
      * main() method.
      *
      * @param args
      *            WebLogic Server URL
      * @exception Exception
      *                if operation fails
      */
     public static void main(String[] args) throws Exception {
      try {
       ic= getInitialContext();
       TopicSend ts = new TopicSend();
       ts.init(ic, TOPIC);
       readAndSend(ts);
       ts.close();
      } catch (Exception e) {
       e.printStackTrace();
      }
     }

     private static void readAndSend(TopicSend ts) throws IOException,
       JMSException,NamingException {
      BufferedReader msgStream = new BufferedReader(new InputStreamReader(
        System.in));
      String line = null;
      boolean quitNow = false;
      do {
       System.out.print("Enter message (\"quit\" to quit): ");
       line = msgStream.readLine();
       if (line != null && line.trim().length() != 0) {
        ts.send(line);
       
        System.out.println("JMS Message Sent: " + line + "\n");
        quitNow = line.equalsIgnoreCase("quit");
       }
      } while (!quitNow);

     }

     private static InitialContext getInitialContext() throws NamingException {
      Hashtable env = new Hashtable();
      env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
      env.put(Context.PROVIDER_URL, PROVIDER_URL);
      return new InitialContext(env);
     }

    }

     

    TopicReceive1

    import java.util.Hashtable;

    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageListener;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import javax.jms.Topic;
    import javax.jms.TopicConnection;
    import javax.jms.TopicConnectionFactory;
    import javax.jms.TopicSession;
    import javax.jms.TopicSubscriber;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;


    public class TopicReceive1 implements MessageListener {
     // Defines the JNDI context factory.
     public final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";

     // Defines the JNDI provider url.
     public final static String PROVIDER_URL = " t3://localhost:7001";

     // Defines the JMS connection factory for the queue.
     public final static String JMS_FACTORY = "SendJMSFactory";

     // Defines the queue.
     public final static String TOPIC = "SendJMSTopic";

     private TopicConnectionFactory tconFactory;

     private TopicConnection tcon;

     private TopicSession tsession;

     private TopicSubscriber tsubscriber;

     private Topic topic;

     private boolean quit = false;

     /**
      * Message listener interface.
      *
      * @param msg
      *            message
      */
     public void onMessage(Message msg) {
      System.out.println("===================");
      try {
       String msgText;
       if (msg instanceof TextMessage) {
        msgText = ((TextMessage) msg).getText();
       } else {
        msgText = msg.toString();
       }

       System.out.println("Message Received: " + msgText);

    //   if (msgText.equalsIgnoreCase("123")) {
    //    synchronized (this) {
    //     quit = true;
    //     this.notifyAll(); // Notify main thread to quit
    //    }
    //   }
      } catch (JMSException jmse) {
       jmse.printStackTrace();
      }
     }

     /**
      * Creates all the necessary objects for receiving messages from a JMS
      * queue.
      *
      * @param ctx
      *            JNDI initial context
      * @param queueName
      *            name of queue
      * @exception NamingException
      *                if operation cannot be performed
      * @exception JMSException
      *                if JMS fails to initialize due to internal error
      */
     public void init(Context ctx, String queueName) throws NamingException,
       JMSException {
      tconFactory = (TopicConnectionFactory) ctx.lookup(JMS_FACTORY);
      tcon = tconFactory.createTopicConnection();
      tsession = tcon.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
      topic = (Topic) ctx.lookup(queueName);
      tsubscriber = tsession.createSubscriber(topic);
      //System.out.println("12");
      //Message msg = treceiver.receive();
      //msg.acknowledge();
      //tsubscriber = tsession.createSubscriber(topic);Message msg = tsubscriber.receive();msg.acknowledge();
      //System.out.println(msg);
      tsubscriber.setMessageListener(this);
      tcon.start();
     }

     /**
      * Closes JMS objects.
      *
      * @exception JMSException
      *                if JMS fails to close objects due to internal error
      */
     public void close() throws JMSException {
      tsubscriber.close();
      tsession.close();
      tcon.close();
     }

     /**
      * main() method.
      *
      * @param args
      *            WebLogic Server URL
      * @exception Exception
      *                if execution fails
      */

     public static void main(String[] args) throws Exception {

      InitialContext ic = getInitialContext();
      TopicReceive1 tr1 = new TopicReceive1();
      tr1.init(ic, TOPIC);

      System.out
        .println("JMS Ready To Receive Messages (To quit, send a \"quit\" message).");
      
      

      // Wait until a "quit" message has been received.
    //  synchronized (tr1) {
    //   System.out.println("111111111111");
    //   while (!tr1.quit) {
    //    try {
    //     System.out.println("2222222222");
    //     tr1.wait();
    //     System.out.println("333333333");
    //    } catch (InterruptedException ie) {
    //    }
    //   }
    //  }
      tr1.close();
     }

     private static InitialContext getInitialContext() throws NamingException {
      Hashtable env = new Hashtable();
      env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
      env.put(Context.PROVIDER_URL, PROVIDER_URL);
      return new InitialContext(env);
     }

    }


    TopicReceive2


    import java.util.Hashtable;

    import javax.jms.JMSException;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import javax.jms.Topic;
    import javax.jms.TopicConnection;
    import javax.jms.TopicConnectionFactory;
    import javax.jms.TopicSession;
    import javax.jms.TopicSubscriber;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;


    public class TopicReceive2 {
     // Defines the JNDI context factory.
     public final static String JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";

     // Defines the JNDI provider url.
     public final static String PROVIDER_URL = " t3://localhost:7001";

     // Defines the JMS connection factory for the queue.
     public final static String JMS_FACTORY = "SendJMSFactory";

     // Defines the queue.
     public final static String TOPIC = "SendJMSTopic";

     private TopicConnectionFactory tconFactory;

     private TopicConnection tcon;

     private TopicSession tsession;

     private TopicSubscriber tsubscriber;

     private Topic topic;

     private boolean quit = false;


     /**
      * Creates all the necessary objects for receiving messages from a JMS
      * queue.
      *
      * @param ctx
      *            JNDI initial context
      * @param queueName
      *            name of queue
      * @exception NamingException
      *                if operation cannot be performed
      * @exception JMSException
      *                if JMS fails to initialize due to internal error
      */
     public void init(Context ctx, String queueName) throws NamingException,
       JMSException,InterruptedException {
      tconFactory = (TopicConnectionFactory) ctx.lookup(JMS_FACTORY);
      tcon = tconFactory.createTopicConnection();
      tcon.setClientID("IP10.200.7.104");
      tcon.start();
      
      tsession = tcon.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
      System.out.println("333333333333");
      topic = (Topic) ctx.lookup(queueName);
      //tsubscriber = tsession.createSubscriber(topic);
      tsubscriber= tsession.createDurableSubscriber(topic,"88888");
       for (int i=0; i<3; i++) {
                 //
                 TextMessage message = (TextMessage) tsubscriber.receive();
                 System.out.println("message["+i+"]: " + message.getText());
             }
              Thread.sleep(10000);
      //System.out.println("12");
      //Message msg = treceiver.receive();
      //msg.acknowledge();
      //tsubscriber = tsession.createSubscriber(topic);Message msg = tsubscriber.receive();msg.acknowledge();
      //System.out.println(msg);

     }

     /**
      * Closes JMS objects.
      *
      * @exception JMSException
      *                if JMS fails to close objects due to internal error
      */
     public void close() throws JMSException {
      tsubscriber.close();
      tsession.close();
      tcon.close();
     }

     /**
      * main() method.
      *
      * @param args
      *            WebLogic Server URL
      * @exception Exception
      *                if execution fails
      */

     public static void main(String[] args) throws Exception {

      InitialContext ic = getInitialContext();
      TopicReceive2 tr2 = new TopicReceive2();
      tr2.init(ic, TOPIC);

      System.out
        .println("JMS Ready To Receive Messages (To quit, send a \"quit\" message).");
      
      

      // Wait until a "quit" message has been received.
    //  synchronized (tr1) {
    //   System.out.println("111111111111");
    //   while (!tr1.quit) {
    //    try {
    //     System.out.println("2222222222");
    //     tr1.wait();
    //     System.out.println("333333333");
    //    } catch (InterruptedException ie) {
    //    }
    //   }
    //  }
      tr2.close();
     }

     private static InitialContext getInitialContext() throws NamingException {
      Hashtable env = new Hashtable();
      env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
      env.put(Context.PROVIDER_URL, PROVIDER_URL);
      return new InitialContext(env);
     }

    }

    posted @ 2007-08-15 09:20 小小程序程序員混口飯吃 閱讀(1174) | 評論 (0)編輯 收藏

    一、rpm包安裝方式步驟:
    引用:

    1、找到相應的軟件包,比如soft.version.rpm,下載到本機某個目錄;

    2、打開一個終端,su -成root用戶;

    3、cd soft.version.rpm所在的目錄;

    4、輸入rpm -ivh soft.version.rpm




    二、deb包安裝方式步驟:

    引用:
    1、找到相應的軟件包,比如soft.version.deb,下載到本機某個目錄;

    2、打開一個終端,su -成root用戶;

    3、cd soft.version.deb所在的目錄;

    4、輸入dpkg -i soft.version.deb




    三、tar.gz源代碼包安裝方式:

    引用:
    1、找到相應的軟件包,比如soft.tar.gz,下載到本機某個目錄;

    2、打開一個終端,su -成root用戶;

    3、cd soft.tar.gz所在的目錄;

    4、tar -xzvf soft.tar.gz //一般會生成一個soft目錄

    5、cd soft

    6、./configure

    7、make

    8、make install




    四、tar.bz2源代碼包安裝方式:

    引用:
    1、找到相應的軟件包,比如soft.tar.bz2,下載到本機某個目錄;

    2、打開一個終端,su -成root用戶;

    3、cd soft.tar.bz2所在的目錄;

    4、tar -xjvf soft.tar.bz2 //一般會生成一個soft目錄

    5、cd soft

    6、./configure

    7、make

    8、make install




    五、apt方式安裝:

    引用:
    1、打開一個終端,su -成root用戶;

    2、apt-cache search soft 注:soft是你要找的軟件的名稱或相關信息

    3、如果2中找到了軟件soft.version,則用apt-get install soft.version命令安裝軟件 注:只要你可以上網,只需要用apt-cache search查找軟件,用apt-get install軟件




    六、bin文件安裝:

    如果你下載到的軟件名是soft.bin,一般情況下是個可執行文件,安裝方法如下:

    引用:
    1、打開一個終端,su -成root用戶;

    2、chmod +x soft.bin

    3、./soft.bin //運行這個命令就可以安裝軟件了




    七、不需要安裝的軟件:

    有了些軟件,比如lumaqq,是不需要安裝的,自帶jre解壓縮后可直接運行。假設下載的是lumaqq.tar.gz,使用方法如下:

    引用:
    1、打開一個終端,su -成root用戶;

    2、tar -xzvf lumaqq.tar.gz //這一步會生成一個叫LumaQQ的目錄

    3、cd LumaQQ

    4、chmod +x lumaqq //設置lumaqq這個程序文件為可運行

    5、此時就可以運行lumaqq了,用命令./lumaqq即可,但每次運行要輸入全路徑或切換到剛才生成的LumaQQ目錄里

    6、為了保證不設置路徑就可以用,你可以在/bin目錄下建立一個lumaqq的鏈接,用命令ln -s lumaqq /bin/ 即可,以后任何時候打開一個終端輸入lumaqq就可以啟動QQ聊天軟件了

    7、如果你要想lumaqq有個菜單項,使用菜單編輯工具,比如Alacarte Menu Editor,找到上面生成的LumaQQ目錄里的lumaqq設置一個菜單項就可以了,當然你也可以直接到 /usr/share/applications目錄,按照里面其它*.desktop文件的格式生成一個自己的desktop文件即可。

    posted @ 2007-08-10 09:39 小小程序程序員混口飯吃 閱讀(624) | 評論 (0)編輯 收藏
    主站蜘蛛池模板: 最新免费jlzzjlzz在线播放| 亚洲日本va午夜中文字幕久久| 亚洲精品动漫免费二区| 国产午夜无码视频免费网站| 国产免费区在线观看十分钟| 亚洲男人的天堂在线播放| 9久9久女女免费精品视频在线观看| 国产精品亚洲а∨天堂2021| 精品久久香蕉国产线看观看亚洲| 国产1024精品视频专区免费| 曰批全过程免费视频观看免费软件| 亚洲视频在线观看| 国产乱子伦片免费观看中字| 9420免费高清在线视频| 无码色偷偷亚洲国内自拍| 亚洲国产香蕉碰碰人人| 亚洲国产精品无码久久青草| 51视频精品全部免费最新| 美女又黄又免费的视频| 亚洲美女一区二区三区| 亚洲一本大道无码av天堂| 在线观看成人免费视频不卡| 美女被免费网站91色| 亚洲欧美日韩中文无线码| 亚洲日本va午夜中文字幕一区| 国产成人免费ā片在线观看| 亚洲国产精品免费在线观看| 中国videos性高清免费| 亚洲国产精品无码中文lv| 亚洲卡一卡2卡三卡4麻豆| 久久精品国产亚洲麻豆| 一本久到久久亚洲综合| 国产福利在线观看免费第一福利| 免费一级不卡毛片| 一级一看免费完整版毛片| 亚洲a∨国产av综合av下载| 亚洲乱码在线观看| 亚洲视频在线观看网站| 久久精品国产亚洲沈樵| 亚洲午夜久久久久久久久久| 亚洲高清无码在线观看|