精华内容
下载资源
问答
  • **配置MQ服务器** # useradd mquser1 -u 3001 # passwd mquser1 设置密码为mqtest2015 ...设置mq环境变量 ~ source setmqenv -s 创建队列管理器JAVA.QUEUE.MANAGER.1,并启动 ~ crtmqm JAVA.QUEUE.MANAG
    **配置MQ服务器**
    # useradd mquser1 -u 3001
    # passwd mquser1  设置密码为mqtest2015
    # su - mqm
    ~ cd /opt/mqm/bin
    设置mq环境变量
    ~ source setmqenv -s


    创建队列管理器JAVA.QUEUE.MANAGER.1,并启动
    ~ crtmqm JAVA.QUEUE.MANAGER.1
    ~ strmqm JAVA.QUEUE.MANAGER.1
    ~ dspmq  查看所有队列管理器运行状态


    启动脚本执行器,进行设置
    ~ runmqsc JAVA.QUEUE.MANAGER.1
    输入: 
        DEFINE QLOCAL(QUEUE1)    创建本地队列QUEUE1
        授权mquser1用户(id为3001)使用队列QUEUE1,其中PROFILE是对该条记录进行命名,PRINCIPAL指定特定用户,表明权限授权某用户。
        SET AUTHREC PROFILE(QUEUE1) OBJTYPE(QUEUE) PRINCIPAL('mquser1') AUTHADD(PUT,GET)
        授权用户mquser1可以连接队列管理器
        SET AUTHREC OBJTYPE(QMGR) PRINCIPAL('mquser1') AUTHADD(CONNECT)


        定义服务器连接通道
        DEFINE CHANNEL(JAVA.CLIENT.CHANNEL1) CHLTYPE(SVRCONN) TRPTYPE(TCP)


        授权MQ客户端可以连接上面定义的通道,通过ip地址和用户名方式授权
        SET CHLAUTH(JAVA.CLIENT.CHANNEL1) TYPE(ADDRESSMAP) ADDRESS('127.0.0.1') MCAUSER('mquser1')


        定义监听器,接受连接
        DEFINE LISTENER(JAVA.CLIENT.LISTENER1) TRPTYPE(TCP) CONTROL(QMGR) PORT(1316)
        启动:
        START LISTENER(JAVA.CLIENT.LISTENER1)
        结束:
        end


    **编写Java程序**
    MQ Java应用主要需要包含两个Jar包:com.ibm.mq.allclient.jar 和 com.ibm.mq.traceControl.jar
    在安装目录下/opt/mqm/java/lib
    # cd /opt/mqm/java/lib
    # java -java com.ibm.mq.allclient.jar  查看该jar详细信息


    接下来可以用vim或者IDE编写程序


    import java.io.IOException;
    import com.ibm.mq.MQEnvironment;
    import com.ibm.mq.MQException;
    import com.ibm.mq.MQGetMessageOptions;
    import com.ibm.mq.MQMessage;
    import com.ibm.mq.MQPutMessageOptions;
    import com.ibm.mq.MQQueue;
    import com.ibm.mq.MQQueueManager;
    import com.ibm.mq.constants.CMQC;
    import com.ibm.mq.constants.MQConstants;


    public class MQTest {


        public static void main(String[] args) throws MQException, IOException 
        {
            //发送消息给队列
            put();


            //从队列读取消息
            get();
        }


        static void put() throws MQException, IOException
        {
            //配置MQ服务器连接参数
            MQEnvironment.hostname = "127.0.0.1";
            MQEnvironment.port = 1316;
            MQEnvironment.channel = "JAVA.CLIENT.CHANNEL1";


            //设置应用名称,方便服务器MQ 查看应用连接
            MQEnvironment.properties.put(MQConstants.APPNAME_PROPERTY, "MQ Test By Java");


            //创建实例,连接队列管理器
            MQQueueManager queueManager = new MQQueueManager("JAVA.QUEUE.MANAGER.1");


            //以可写的方式访问队列管理器已定义的队列QUEUE1,当然也可以创建队列
            MQQueue putQueue = queueManager.accessQueue("QUEUE1", CMQC.MQOO_OUTPUT);


            //新建并发送消息给队列
            MQMessage myMessage = new MQMessage();
            String name = "George's 博客";
            myMessage.writeUTF(name);


            //使用默认的消息选项
            MQPutMessageOptions pmo = new MQPutMessageOptions();
            //发送消息
            putQueue.put(myMessage, pmo);
            putQueue.close();


            //断开连接
            queueManager.disconnect();
        }


        static void get() throws MQException, IOException
        {
            //配置MQ服务器连接参数
            MQEnvironment.hostname = "127.0.0.1";
            MQEnvironment.port = 1316;
            MQEnvironment.channel = "JAVA.CLIENT.CHANNEL1";


            //设置应用名称,方便服务器MQ 查看应用连接
            MQEnvironment.properties.put(MQConstants.APPNAME_PROPERTY, "MQ Test By Java");


            //创建实例,连接队列管理器
            MQQueueManager queueManager = new MQQueueManager("JAVA.QUEUE.MANAGER.1");


            //以可读的方式访问队列管理器已定义的队列QUEUE1
            MQQueue getQueue = queueManager.accessQueue("QUEUE1", CMQC.MQOO_INPUT_AS_Q_DEF);


            //从队列读取消息
            MQMessage theMessage = new MQMessage();
            MQGetMessageOptions gmo = new MQGetMessageOptions();
            getQueue.get(theMessage, gmo);


            String name = theMessage.readUTF();


            System.out.println(name);
            getQueue.close();


            //断开连接
            queueManager.disconnect();
        }
    }


    编译:
    # /home/jdk1.8.0_102/bin/javac -cp /opt/mqm/java/lib/com.ibm.mq.allclient.jar -Xlint:unchecked MQTest.java


    运行:
    # /home/jdk1.8.0_102/bin/java -cp /opt/mqm/java/lib/com.ibm.mq.allclient.jar:/home/mq MQTest


    **注意**
    路径必须以冒号分割,windows下cp参数是分号分割,运行时必须加上MQText.class所在的目录/home/mq,否则提示 
    错误:找不到或者无法加载主类MQTest;
    此外必须指明引用的jar文件完整路径,否则提示 java.lang.ClassNotFoundException:com.ibm.mq.MQException.


    运行可能出错:


    com.ibm.mq.MQQueueManager.<init>(MQQueueManager.java:675)
        at MQTest.put(MQTest.java:35)
        at MQTest.main(MQTest.java:18) Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2538;AMQ9204:
        与主机 '127.0.0.1(1316)' 的连接被拒绝。 
        [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2538;AMQ9213: 发生 'TCP' 的通信错误。
        
    解决:明显是和MQ服务器通信问题,可能是MQ服务器没有启动
    # telnet 127.0.0.1 1316 是否连通
    # su - mqm
    ~ cd /opt/mqm/bin
    ~ dspmq  查看队列管理器状态,如果没有启动,启动它
    ~ source setmqenv -s
    ~ strmqm JAVA.QUEUE.MANAGER.1


    错误代码:网上查明,是因为与MQ服务器连接错误导致,是因为用户权限问题
    com.ibm.mq.MQException: MQJE001: 完成代码为 '2',原因为 '2035'


    在MQTest.java文件中加入:(**以下两句不用加,这个不是用来验证连接的用户,具体分析见最后小结,这个是后面实验发现**)
    MQEnvironment.userID = "myuser1";
    MQEnvironment.password = "mqtest2016";


    此外在官方文档上找到解决方法:为在队列管理器重新增加用户mquser1用户的权限,MQ Java类库用到了其它权限。
     # su - mqm
    ~ cd /opt/mqm/bin
    设置mq环境变量
    ~ source setmqenv -s
    启动脚本执行器,进行设置
    ~ runmqsc JAVA.QUEUE.MANAGER.1
        SET AUTHREC OBJTYPE(QMGR) PRINCIPAL('mquser1') AUTHADD(CONNECT,INQ)
        SET AUTHREC PROFILE('QUEUE1') OBJTYPE(QUEUE) PRINCIPAL('mquser1') AUTHADD(PUT,GET,INQ,BROWSE)
    其中:
    INQ:查询队列的属性信息
    PUT:发送给队列
    GET:从队列读取消息
    BROWSE:从队列读取消息,以浏览的选项设置
    CONNECT:允许应用连接MQ
    具体参见官网文档 [SET AUTHREC](http://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.ref.adm.doc/q086620_.htm)
    文档中实例进行的的配置命令如下:


        runmqlsr -t tcp -m JAVA.QUEUE.MANAGER.1 -p 1317  (通过查看进程知道,该方式和上述方式设置效果一样,但这样更简单)
        runmqsc JAVA.QUEUE.MANAGER.1
            DEFINE CHANNEL('JAVA.CHANNEL.1') CHLTYPE(SVRCONN) TRPTYPE(TCP) DESCR('TEST FOR JAVA')
            SET CHLAUTH('JAVA.CHANNEL.1') TYPE(ADDRESSMAP) ADDRESS('192.168.98.1') MCAUSER('mquser1')
            DEFINE QLOCAL('QUEUE1') DESCR('TEST FOR QUUE')
            SET AUTHREC OBJTYPE(QMGR) PRINCIPAL('mquser1') AUTHADD(CONNECT,INQ)
            SET AUTHREC PROFILE('QUEUE1') OBJTYPE(QUEUE) PRINCIPAL('mquser1') AUTHADD(PUT,GET,INQ,BROWSE)
            end


    修改后的代码如下:


    import java.io.IOException;


    import com.ibm.mq.MQEnvironment;
    import com.ibm.mq.MQException;
    import com.ibm.mq.MQGetMessageOptions;
    import com.ibm.mq.MQMessage;
    import com.ibm.mq.MQPutMessageOptions;
    import com.ibm.mq.MQQueue;
    import com.ibm.mq.MQQueueManager;
    import com.ibm.mq.constants.CMQC;
    import com.ibm.mq.constants.MQConstants;


    public class MQTest {


        public static void main(String[] args) throws MQException, IOException 
        {
            //发送消息给队列
            put();


            //从队列读取消息
            get();
        }


        static void put() throws MQException, IOException
        {
            //配置MQ服务器连接参数
            MQEnvironment.hostname = "127.0.0.1";
            MQEnvironment.port = 1316;
            MQEnvironment.channel = "JAVA.CLIENT.CHANNEL1";
            MQEnvironment.userID = "mquser1";
            MQEnvironment.password = "mqtest2016";
            //设置应用名称,方便服务器MQ 查看应用连接
            MQEnvironment.properties.put(MQConstants.APPNAME_PROPERTY, "MQ Test By Java");


            //创建实例,连接队列管理器
            MQQueueManager queueManager = new MQQueueManager("JAVA.QUEUE.MANAGER.1");


            //以可写的方式访问队列管理器已定义的队列QUEUE1,当然也可以创建队列
            MQQueue putQueue = queueManager.accessQueue("QUEUE1", CMQC.MQOO_OUTPUT);


            //新建并发送消息给队列
            MQMessage myMessage = new MQMessage();
            String name = "MePlusPlus's 博客";
            myMessage.writeUTF(name);


            //使用默认的消息选项
            MQPutMessageOptions pmo = new MQPutMessageOptions();
            //发送消息
            putQueue.put(myMessage, pmo);
            putQueue.close();


            //断开连接
            queueManager.disconnect();
        }


        static void get() throws MQException, IOException
        {
            //配置MQ服务器连接参数
            MQEnvironment.hostname = "127.0.0.1";
            MQEnvironment.port = 1316;
            MQEnvironment.channel = "JAVA.CLIENT.CHANNEL1";
            MQEnvironment.userID = "mquser1";
            MQEnvironment.password = "mqtest2016";
            //设置应用名称,方便服务器MQ 查看应用连接
            MQEnvironment.properties.put(MQConstants.APPNAME_PROPERTY, "MQ Test By Java");


            //创建实例,连接队列管理器
            MQQueueManager queueManager = new MQQueueManager("JAVA.QUEUE.MANAGER.1");


            //以可读的方式访问队列管理器已定义的队列QUEUE1
            MQQueue getQueue = queueManager.accessQueue("QUEUE1", CMQC.MQOO_INPUT_AS_Q_DEF);


            //从队列读取消息
            MQMessage theMessage = new MQMessage();
            MQGetMessageOptions gmo = new MQGetMessageOptions();
            getQueue.get(theMessage, gmo);


            String name = theMessage.readUTF();


            System.out.println(name);
            getQueue.close();


            //断开连接
            queueManager.disconnect();
        }
    }


    # /home/jdk1.8.0_102/bin/javac -cp /opt/mqm/java/lib/com.ibm.mq.allclient.jar MQTest.java
    # /home/jdk1.8.0_102/bin/java -cp /opt/mqm/java/lib/com.ibm.mq.allclient.jar:/home/mq  MQTest
    展开全文
  • 系统环境:Windows 2003 + Webspere 5.0.2.6 描述: 今天在部署war包是遇到了一个小问题,在修改了WAS管理控制台中“环境”==>>“管理 WebSphere 变量”中的“JAVA_HONE”的值后,重新启动是日志报“初始化失败”...

    系统环境:Windows 2003 + Webspere 5.0.2.6

     

    描述:

            今天在部署war包是遇到了一个小问题,在修改了WAS管理控制台中“环境”==>>“管理 WebSphere 变量”中的“JAVA_HONE”的值后,重新启动是日志报“初始化失败”。WAS无法正常启功。

     

    问题解决:

            分析了日志后,怀疑我应该是JAVA_HOME的值设置错了。但是如何改过来呢?去Google和Baidu了半天都没找到答案。静下心来想想,WAS肯定会把修改的信息写到一个配置文件中(嘿嘿,本人在写程序的时候也有向配置文件写配置信息的习惯)。在WAS的安装目录下翻腾了半天终于找到了,在“../WebSphere/AppServer/config/cells/csfwq/nodes/csfwq”下的“variables.xml”记录我刚修改的参数,改回默认值,保存。重新“启动服务器”,这次时间稍长点儿。OK,有看到了熟悉的管理控制台的界面。可以继续工作了。

     

    疑问:

           我把“JAVA_HOME”设置成“C:/Program Files/java/jdk 1.4.2”怎么就不行呢?难道文件名中不能包含“.”吗?等有时间再试试。

    展开全文
  • 公司有一个项目需要用到WebSphere Studio Application Developer 5.0 的开发环境,这个环境比较老,而且...1.修改JDK环境变量,改成1.4 系统变量里设置下面: 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk

    公司有一个项目需要用到WebSphere Studio Application Developer 5.0 的开发环境,这个环境比较老,而且只能用JDK1.4。 


    项目开发的时候 总是报错:

    JVM terminated Exit Code=1


    无奈,网上的帖子少的可怜,只能根据eclipse的参数设定,设置这个工具的参数。


    解决步骤:

    1.修改JDK环境变量,改成1.4

    系统变量里设置下面:

    变量名:JAVA_HOME  变量值:C:\Program Files\Java\jdk1.4.0_25
    变量名:CLASSPATH  变量值:.;%JAVA_HOME%\lib;
    变量名:Path           变量值:%JAVA_HOME%\bin;
    否则直接打命令,你会遇见下面的错误:


    2.CMD下到你的安装目录:

    cd D:\IBM\WebSphere Studio\Application Developer IE\v5.1.1>

    执行命令:wsappdevie.exe -data d:\workspace -vm D:\IBM\j2sdk1.4.2_05\bin\javaw.exe  -vmargs -Xmx600m -Xms400m -XX:PermSize=64M -xx:MaxPermSize=128M


    设置工作空间,JVM, 以及参数,参数请参照后面地址说明:

    http://wenku.it168.com/d_001008985.shtml


    3.有可能你会遇到下面的错误提示:


    很遗憾我还没找到解决办法, 只不过再打开websphere studio 的工具, 已经不报错了。


    展开全文
  • 如何产生javacore文件(关于cpu的)和heapdump文件(关于内存的) 2.1 choose one cluster member,...在was启动前设置下面环境变量(可以加在启动脚本中) export IBM_HEAPDUMP=true export IBM_HEAP_DUMP=true e...
    如何产生javacore文件(关于cpu的)和heapdump文件(关于内存的)
    2.1 choose one cluster member, set the following before this server start:
    在was启动前设置下面环境变量(可以加在启动脚本中)
    export IBM_HEAPDUMP=true
    export IBM_HEAP_DUMP=true
    export IBM_HEAPDUMP_OUTOFMEMORY=true
    export IBM_HEAPDUMPDIR=<directory path>

    2.2please use set command to make sure you do not have DISABLE_JAVADUMP parameter
    then start this cluster member.
    用set命令检查参数设置,确保没有设置DISABLE_JAVADUMP,然后启动server

    2.3when you find free memory < 50% when no heavy access, please run kill -3 <pid>
    执行kill -3 <pid>命令可以生成javacore文件和heapdump文件(pid为was java进程的id号,可以用ps -ef|grep java 查到),可以多执行几次,按照下面操作进行

    ps -ef > psef1.txt
    ps aux > psaux1.txt
    vmstat 5 10 > vmstat.txt
    kill -3 <app server id>
    wait for 2 mins
    kill -3 <app server id>
    wait for 2 mins
    kill -3 <app server id>
    netstat -an> netstat2.txt
    ps -ef > psef2.txt
    ps aux > psaux2.txt
    将上面产生的 txt 文件和/usr/WebSphere/AppServer/javacore*文件和heapdump文件拷贝到本地,然后删除这些文件,因为这些文件会占用较大的文件系统空间。
    将/usr/WebSphere/AppServer/logs/wlmserver1(或2)目录下当天产生的日志拷贝出来
    展开全文
  • 在命令行中操作 进入wsadmin D:\IBM\WebSphere\AppServer\profiles\AppSrv01\bin>wsadmin -user ...设置jvm环境变量 wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=serv...
  • 如何产生javacore文件(关于cpu的)和heapdump文件(关于内存的)2.1 choose one cluster member, set the following before this server start:在was启动前设置下面环境变量(可以加在启动脚本中)export IBM_HEAP...
  • 2. 如何产生javacore文件(关于cpu的)和heapdump文件(关于内存的)2.1 choose one cluster member, set the following before this server start:在was启动前设置下面环境变量(可以加在启动脚本中)export IBM_...
  • 需要通过命令行方式java -jar xxx.jar来调用一个可运行的jar程序,由于生产环境jre路径不同,并且没有设置环境变量,应用服务器WebSphere的路径也不同,所以没法 通用的设定一个jre路径来执行java -jar命令。...
  • java程序设计概述

    2010-03-27 09:39:53
    昨天晚上项目组投产,有一个下载的程序在测试机的环境一切正常,但是发布到生产机的环境总是出错,我们的生产机环境是AIX+WEBSphere 6.0,java,eos,db2,刚开始是下载的文件名是乱码,后来把was 6.0的环境变量设置成...
  • [size=medium]一、jxl的java.lang.OutOfMemoryError jxl导出excel时,执行Workbook.createWorkbook(os)是报java.lang.OutOfMemoryError。 这个问题是jvm虚拟机的默认...1.可以在windows 更改系统环境变量加上JAV...
  • 如何生成javacore和heapdump

    万次阅读 2012-12-04 14:26:00
    -----成功生成: 如何生成javacore和heapdump 进入wsadmin  D:\IBM\WebSphere\AppServer\bin>wsadmin -user wasadmin -password ...设置jvm环境变量:  wsadmin>set jvm [$AdminControl completeObjectName ty
  • 基于J2ee技术开发,可以运行在Tomcat、weblogic、websphere等...在windows操作系统下如果需要将Tomcat变成自动启动的服务,只需按以下步骤操作即可:1、在环境变量设置JAVA_HOME(假设我们缺省的JDK目录为d:\j2sdk...
  • java 面试题 总结

    2009-09-16 08:45:34
    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...
  • 承元OA基于J2ee技术开发,可以运行在Tomcat、weblogic、websphere等J2ee应用服务器上,对于一般访问量不是很高的客户我们推荐使用Tomcat(开源免费),一般情况下Tomcat服务需要手动[size...1、在环境变量设置JAVA_H...
  • 承元OA基于J2ee技术开发,可以运行在Tomcat、weblogic、websphere等J2ee应用服务器上,对于一般访问量不是很高的客户我们推荐使用Tomcat(开源免费),一般情况下Tomcat服务...1、在环境变量设置JAVA_HOME (假设...
  • 超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...
  • 一些常见的配置

    2016-04-13 20:33:00
    a,JAVA_HOME环境变量问题 b,端口号被占用 3,Catalina_home环境变量设置问题:如果设置了,则用的设置的TOMCAT ************ 对于一个web项目a @@@@@@a/WEB-INF/web.xml下设置主页 ...
  • JavaWeb开发基础

    2017-03-12 16:45:42
    1、应用服务器 Java的应用服务器:Tomcat,JBoss,WebSphere,WebLogic,Resin。这里主要以Tomcat为主。...1.2、在环境变量设置  CATALINA_HOME=Tomcat的路径  JAVA_HOME=Java路径 1.3、将Tom
  • J2EE经典实例详解 <1>

    2008-01-28 17:20:58
    3 Duke的运行环境 <br>1. 3. 1 Duke的生存空间 <br>1. 3. 2 包装Duke <br>1. 3. 3 部署Duke <br>1. 4 Duke全景浏览 <br>1. 4. 1 设置Duke的安全机制 <br>1. 4. 2 创建Duke数据库 <br>1. 4. 3 ...
  • spring chm文档

    热门讨论 2009-04-08 14:23:19
    12.6.1. 在Spring环境中建立JPA 12.6.2. JpaTemplate 和 JpaDaoSupport 12.6.3. 基于原生的JPA实现DAO 12.6.4. 异常转化 12.6.5. 事务管理 12.6.6. JpaDialect III. Web 13. Web框架 13.1. 介绍 13.1.1. 与...
  • 测试培训教材

    2014-04-01 12:10:48
    QC支持的应用服务器:Jboss、WebLogic、WebSphere QC支持的数据库:Oracle、SQLServer QC支持的操作系统:Windows、Linux、Solaris 支持群集: 服务器端硬件和数据库要求: Windows: Linux: Solaris: ...
  • 操作系统(内存管理)

    热门讨论 2009-09-20 12:55:25
    这三个变量都是全局变量: 清单 1. 我们的简单分配程序的全局变量 int has_initialized = 0; void *managed_memory_start; void *last_valid_address; 如前所述,被映射的内存的边界(最后一个有效地址)常...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

websphere设置java环境变量

java 订阅