代码改变世界

随笔档案-2012年8月2日

如何用Spring整和ActiveMQ?

2012-08-02 23:59 by java20130722, 147 阅读, 收藏,
摘要: 问题一:为什么要整合ActiveMQ? 传统的JDBC代码在处理连接、语句、结果集和异常时是多么冗长和繁杂你一定不会忘记,传统的JMS继承了JDBC的“关荣传统”。发送一个简单的消息,要几行代码呢?请仔细数数吧。 Java代码以下是引用片段:publicvoidsendMessage()throwsJMSException{ActiveMQConnectionFactoryconnectionFactory=newActiveMQConnectionFactory("tcp://localhost:61616");Connectionconnection=null;Sess 阅读全文

三种常见的Java应用性能挑战

2012-08-02 23:55 by java20130722, 204 阅读, 收藏,
摘要: Java是一种伟大的语言。它管理内存,传授面向对象的编程(思想),使我们更好地用它来编码。另外,它确实是一种“编写一次,到处运行“的语言。然而,Java应用程会遇到一些常见的开发者和应用者独耳熟能详的性能挑战。 内存泄露 Java的最大的好处之一是它能够管理内存模型。当对象不再使用时,Java会做清理工作。较旧的语言需要人工来管理内存,但开发者宁愿花时间专注于核心语言逻辑而不愿为内存分配而忧心。 话虽如此,却不能保证Java的内存管理没有问题,提供管理内存模型,或创建/销毁未使用的对象,(这些对象)都放在Java的“堆(Heap)“中,内存泄露通常是不正确编程的结果–通常,开发者没有消... 阅读全文

Java开发2.0:用Hadoop MapReduce进行大数据分析

2012-08-02 23:54 by java20130722, 360 阅读, 收藏,
摘要: Google在2001年发布图像搜索功能时,只有2.5亿索引图像,不到10年,这个巨大的搜索功能已经可以检索超过100亿个图像了,每分钟有35小时的内容上传到YouTube。据称,Twitter每天平均处理5500万tweet。今年早些时候,搜索功能每天记录6亿条查询记录。这 就是我们讨论大数据的意义所在。 如此大规模的数据一度仅限于大企业、学校和政府机构 — 这些机构有能力购买昂贵的超级计算机、能够雇用员工保障其运行。今天,由于存储成本的降低和处理能力的商品化,一些小公司,甚至个人都可以存储和挖掘同样的数据,推动新一轮的应用程序创新。 大数据革命技术之一是MapReduce,一个编程模式.. 阅读全文

Java中间件:淘宝网系统高性能利器

2012-08-02 23:52 by java20130722, 273 阅读, 收藏,
摘要: 【TechTarget中国原创】淘宝网是亚太最大的网络零售商圈,其知名度毋庸置疑,吸引着越来越多的消费者从街头移步这里,成为其忠实粉丝。如此多的用户和交易量,也意味着海量的信息处理,其背后的IT架构的稳定性、可靠性也显得尤为重要。那么,他们是怎么办到的呢? 曾宪杰(花名花黎)是淘宝Java中间件团队成员,他认为大型网站就是要同时满足高访问量和高数据量的要求,核心是通过分布式系统解决数据的处理、存储及访问问题。 消息中间件Notify 早期,淘宝并没有Java中间件,其系统框架比较简单。下面我们就来看看Java中间件在淘宝的诞生和发展。首先要说的是实现系统松耦合和异步处理的消息中间件Not... 阅读全文

JAVA中内存分配策略里的堆与栈

2012-08-02 23:49 by java20130722, 249 阅读, 收藏,
摘要: 按照编译事理的分配概念,运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的。 静态存储分配是指在编译时就能确定每个数据方针在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间。这种分配策略要求代码中不许可有可变数据结构(好比可变数组)的存在,也不许可有嵌套或者递归的结构呈现,因为它们城市导致编译轨范无法计较切确的存储空间需求。 栈式存储分配也可称为动态存储分配,是由一个近似于仓库的运行栈来实现的。和静态存储分配相反,在栈式存储方案中,对数据区的需求在编译时是完全未知的,只有到运行的时辰才能够知道,可是划定在运行中进入一个轨范模块时,必需知道该轨范模块所需的数据区巨细.. 阅读全文

Java调用SQL Server的存储过程详解

2012-08-02 23:48 by java20130722, 146 阅读, 收藏,
摘要: 1、使用不带参数的存储过程{callprocedure-name} 作为实例,在SQL Server 2005AdventureWorks示例数据库中创建以下存储过程:CREATEPROCEDUREGetContactFormalNames ASBEGINSELECTTOP10Title+''+FirstName+''+LastNameASFormalName FROMPerson.ContactEND 此存储过程返回单个结果集,其中包含一列数据(由Person.Contact表中前十个联系人的称呼、名称和姓氏组成)。 在下面的实例中,将向此函数传递Advent 阅读全文

Java六大必须理解的问题

2012-08-02 23:47 by java20130722, 105 阅读, 收藏,
摘要: 对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。内容均来自于CSDN的经典老贴。 问题一:我声明了什么!Strings="Helloworld!"; 许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。 这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任何对象,目前指向"Hell 阅读全文

Java内存管理的九个小技巧

2012-08-02 23:46 by java20130722, 143 阅读, 收藏,
摘要: 很多人都说“Java完了,只等着衰亡吧!”,为什么呢?最简单的的例子就是Java做的系统时非常占内存!一听到这样的话,一定会有不少人站出来为Java辩护,并举出一堆的性能测试报告来证明这一点。其实从理论上来讲Java做的系统并不比其他语言开发出来的系统更占用内存,那么为什么却有这么多理由来证明它确实占内存呢?两个字,陋习。 1、别用new Boolean()。 在很多场景中Boolean类型是必须的,比如JDBC中boolean类型的set与get都是通过Boolean封装传递的,大部分ORM也是用Boolean来封装boolean类型的,比如: 以下是引用片段: ps.setBool... 阅读全文

Java编程程序异常处理方法

2012-08-02 23:43 by java20130722, 201 阅读, 收藏,
摘要: 对于java异常处理你是否都掌握了呢,如果是,你是否能在下面这段代码中,迅速找出异常处理的六个问题吗?1、OutputStreamWriterout=… 2、java.sql.Connectionconn=… 3、try{//⑸ 4、Statementstat=conn.createStatement(); 5、ResultSetrs=stat.executeQuery( 6、"selectuid,namefromuser"); 7、while(rs.next()) 8、{ 9、out.println("ID:"+rs.getString("u 阅读全文

优化Java堆大小的五个技巧

2012-08-02 23:34 by java20130722, 171 阅读, 收藏,
摘要: 本文作者Pierre是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE、中间件和JVM技术。根据他多年的工作实践经验,他发现许多性能问题都是由Java堆容量不足和调优引起的。下面他将和大家分享非常实用的5个Java堆优化技巧。 1、JVM:对难以理解的东西产生恐惧感 千万不要以为,通过配置,调优,就可以排除那些你所不明白的问题。有些人认为Java程序员不需要知道内部JVM内存管理。毫无疑问,这种观点明显是错误的,如果想拓宽知识面和提升排除故障能力,你就必须要了解和学习一下JVM内存管理。 对于Java或者是Java EE新手来说,Java Heap调优和故障排除是一项... 阅读全文

WebSphere DataPower SOA Appliance性能调优

2012-08-02 23:30 by java20130722, 351 阅读, 收藏,
摘要: IBM WebSphere DataPower SOA Appliance是根据特定目的构建的设备,通常充当网关和/或Enterprise Service Bus (ESB)来帮助保护、加快、转换、扩展和路由消息。本文介绍了如何调 WebSphere DataPower以实现理想的性能结果。 本文将遍历完整的性能调优过程,即首先进行概要分析,然后进行实际调优,最后进行性能测试,并提供了先决条件、方法和技巧。 本文的所有信息、步骤和图表都基于WebSphere DataPower Integration Appliance XI50设备,固件3.8.0.1。 概要分析 在开始调优WebS... 阅读全文

WebSphere优化技巧集中营

2012-08-02 22:40 by java20130722, 199 阅读, 收藏,
摘要: WebSphere优化技巧 1、更改http server的配置文件参数KeepAlive。 原因:这个值说明是否保持客户与HTTP SERVER的连接,如果设置为ON,则请求数到达MaxKeepAliveRequests设定值时请求将排队,导致响应变慢。 方法:打开ibm http server安装目录,打开文件夹conf,打开文件httpd.conf,查找KeepAlive值,改ON为OFF,其默认为ON。 2、更改http server的配置文件参数ThreadsPerChild值到更大数目,默认为50 原因:服务器响应线程的数量。 方法:打开ibm http server安装目录,打. 阅读全文

Websphere message Broker 部署关键环节

2012-08-02 22:39 by java20130722, 318 阅读, 收藏,
摘要: * 启动队列管理器 strmqm QM_1002 * 启动侦听器 runmqlsr -m QM_1002 -t TCP -p 1414 & **************************************** 1 //create QM ****创建和启动QM队列管理器 crtmqm WBRK_QM strmqm WBRK_QM ****执行mqsiprofile.cmd,位置位于 cd D:\IBM\MQSI\6.0\bin ****本次实验实际的地址: cd C:\Program Files\IBM\MQSI\6.1\bin mqsiprofile ... 阅读全文

WebSphere ESB入门:创建POJO并发布(二)

2012-08-02 22:38 by java20130722, 198 阅读, 收藏,
摘要: 图 5. 将接口与生成的服务组件相关联 现在接口已与组件关联。我们可以通过使用“Generate Implementation”选项生成实现的框架。 图 6. 为新服务组件生成实现 图 7. 将实现添加到生成的框架中 我们需要在上述类中添加 convert 方法的实现,如下所示: 清单 1. Convert 方法实现public Double convert(Double celsius) {double dCelsius = celsius.doubleValue();double fahr;fahr = (((0.9/0.5) * dCelsius) + 32);return n... 阅读全文

WebSphere ESB入门:创建POJO并发布(一)

2012-08-02 22:37 by java20130722, 315 阅读, 收藏,
摘要: 了解如何从传统 Java 对象(Plain Old Java™ Object,POJO)开发服务组件,并在 IBM® WebSphere Enterprise Service Bus 中发布。采用 Web 服务描述语言 (WSDL) 定义接口,并使用 Java™ 实现。了解如何将服务组件与独立引用相关联,以及如何使用独立引用跨 ESB 访问服务。 先决条件 本文假定您已经安装了 IBM WebSphere ESB 6.0 和 IBM WebSphere Integration Developer 6.0。 WebSphere Enterprise Service Bus 简介 Web 阅读全文

如何在java中使用WebSphere MQ?

2012-08-02 22:36 by java20130722, 644 阅读, 收藏,
摘要: Java中使用websphere websphere mq:用于传输信息 具有跨平台的功能。 1 安装websphere mq并启动 2 websphere mq建立queue Manager(如:MQSI_SAMPLE_QM) 3 建立queue类型选择Local类型的(如lq) 4 建立channels类型选择Server Connection(如BridgeChannel)以下是引用片段:packagetest.mq;importcom.ibm.mq.*;/**?????mq?java?*/publicclassFirstMqTest{//publicstaticvoidmain... 阅读全文

如何使用MQ标头动态确定数据处理程序的行为?

2012-08-02 22:35 by java20130722, 313 阅读, 收藏,
摘要: 本文的目标读者是集成开发人员,其角色涉及使用服务组件体系结构(Service Component Architecture,SCA)集成MQ消息传递引擎。本文将描述如何使用数据处理程序基于MQ标头更改转换逻辑,同时确保处理程序保持协议独立性。涵盖的主题包括: 数据处理程序的解释 从数据处理程序访问MQ标头 基于标头改变数据处理程序的行为 确保数据处理程序保持协议独立性 在阅读本文之后,您将能够创作基于MQ标头动态地转换数据的可重用数据处理程序。 数据处理程序 数据处理程序负责将操作的输入和输出类型转换为有线使用的格式,反之亦然。以前,MQ绑定使用了数据绑定执行此功能。数据绑定具有... 阅读全文

如何使用WSRR作为Web服务唯一数据源

2012-08-02 22:29 by java20130722, 279 阅读, 收藏,
摘要: 面向服务的架构以其服务复用、松耦合、灵活、高互操作性以及在集成和监管方面的特点促进了商业的敏捷性,及时响应以及可靠性。在这些方面中,SOA一个重要的特性就是将服务的实现和描述的分离,并且在服务的整个生命周期中使用服务描述的元数据。为了实现服务实现和描述的分离,用户需要一个注册服务器来存储服务元数据。 IBM® WebSphere® Service RegistryandRepository(文章随后的部分都简写为WSRR)是一个保存,查询和管理服务元数据的系统。在SOA体系架构中,这个系统在服务选择、调用、管理、监管以及服务复用方面起了关键作用。换句话说,它是一个你用来保存 阅读全文

WebSphere MQ几个特性的应用

2012-08-02 14:34 by java20130722, 402 阅读, 收藏,
摘要: IBM WebSphere MQ消息中间件有很多的特性和优点,使用IBM WebSphere MQ可以简化和优化消息通讯的应用设计。为了满足用户各种不同的应用的通讯需求,IBM WebSphere MQ采用了大量业界领先的技术,并拥有许多先进的功能,其中很多是其他厂商所无能为力的。将这些技术和功能应用到客户的通讯系统之中,可以简化应用逻辑,优化系统架构,从而提高整个系统的可靠性、可用性和可扩展性。下面将介绍怎样使用IBM WebSphereMQ的一些特性来简化程序。 1.利用消息的COA机制处理接收回执 在通讯应用处理中,如果数据的发送方需得到接收方结果收妥的确认后方可进行。我们可以利用... 阅读全文

Chapter07-线程控制

2012-08-02 08:26 by java20130722, 184 阅读, 收藏,
摘要: 挂起和重启线程 在线程内核对象中有一个标记线程挂起的计数器,当你调用CreateProcess或CreateThread函数时线程内核对象初始化为1,这样就可以在线程完成所有初始化工作之前阻止CPU调度它。 当线程被完全初始化后,CreateProcess或CreateThread函数检查是否传递了CREATE_SUSPENDED标识。如果传递了则函数返回后,线程出于挂起状态;如果没有传递,则将线程挂起计数器置为0,使得线程处于可调度状态。 创建一个挂起的线程可以让你在线程挂起期间做一些设置,修改线程环境(比如优先级等等)。在完成这些设置后,你最终还是得让线程处于可调度状态,这是就需要用到Re 阅读全文