﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-轻松</title><link>http://www.blogjava.net/relax/</link><description>记述我学习java的里程</description><language>zh-cn</language><lastBuildDate>Wed, 29 Apr 2026 19:24:42 GMT</lastBuildDate><pubDate>Wed, 29 Apr 2026 19:24:42 GMT</pubDate><ttl>60</ttl><item><title>学习管理笔记，领导类型与管理的三重境界</title><link>http://www.blogjava.net/relax/archive/2012/06/21/381264.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Thu, 21 Jun 2012 07:42:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2012/06/21/381264.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/381264.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2012/06/21/381264.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/381264.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/381264.html</trackback:ping><description><![CDATA[<p>摘自：《青梅煮酒论领导》</p>
<p>1.报时型领导与造钟型领导</p>
<p>&nbsp;&nbsp;&nbsp; 可以用一个比喻来说明这个问题。领导者有两种类型，一种是报时型领导，整个团队都不知道几点了，只有领导知道，大家就都来问领导，领导能够准确地告诉大家几点。领导在的时候，一切正常。这样的管理存在两个问题：一是尽管一切正常，但是领导自己会很忙碌、很辛苦，因为所有的人都来找领导，所有的事情都需要领导来拍板；二是如果领导不在，大家找不到领导，正常的工作马上就会陷入混乱，找不到报时的人，大家都不知道几点了，都不知道工作该怎么干。</p>
<p>&nbsp;&nbsp;&nbsp; 与此不同，第二类领导是造钟型领导。领导知道几点了，但是主要力量不是放在给大家报时上，而是集中力量给大家造一个钟，不管自己在不在，不管自己说不说，所有的人只要看看钟就知道几点了。让组织有一种自动运行的机制，这是一个非常重要的问题。领导不需要事必躬亲，而应该只关注异常、不关注正常，只关注例外、不关注例行。因为正常的事情、例行的事情，有制度管、有下属管，不用领导自己管。只有那些超出制度框架之外的事情，领导不管就没人来管，这时候才需要领导亲自上阵。</p>
<p>&nbsp;&nbsp;&nbsp; 管理首先要把基础的、基本的事情做对。基本的事情就是为组织建立一个自动运行的机制，把基础的制度建设落到实处。基础管理的四化是制度化、标准化、结构化、流程化。通过基础管理，要让组织内的每个成员遇到了正常的、例行的事情时都知道该怎么做。这好比是一座大楼的框架和支柱，先把框架和支柱建结实了，然后才能搞内部装修。规范管理和制度建设是所有组织的基础，一切先进的管理理念和方法都要建立在这个基础之上。对于一座大楼，如果框架和柱子的问题还没有解决，建设者就热衷于搞内部装修赶时髦，那将是非常可怕的灾难。</p>
<p>&nbsp;&nbsp;&nbsp; 2.管理的三重境界</p>
<p>&nbsp;&nbsp;&nbsp; 让组织有一个自动运行的机制，这是管理的第一重境界。管理的第二重境界是让每个员工都有自动运行的机制。要达到第一重境界，基本途径是制度建设，靠的是领导者的规范能力和掌控能力；要达到第二重境界，基本途径是动机的激发，需要综合使用绩效管理和团队建设的手段，靠的是领导者的价值观和激励能力。</p>
<p>&nbsp;&nbsp;&nbsp; 管理的第三重境界，也就是最高境界，是员工的自动运行和组织的自动运行相结合，互相推动，互相促进。这就好比员工不但知道怎样看钟，还知道怎样调钟和修钟。钟也成了智能钟，可以根据不同场合、任务以及不同员工的特点，选择自己的报时方式和提醒间隔。在这个过程中，文化建设和队伍的培育与发展成为最关键的问题。</p>
<p>&nbsp;&nbsp;&nbsp; 一旦达到了第三重境界，那么组织的管理就可以举重若轻，收放自如。做一个闲人领导，其实不但是一种能力的考验，看其能否建立起自动运行的组织机制，而且更是一种个人境界的考验。为什么这么说呢？我们可以来分析一下。</p>
<p>&nbsp;&nbsp;&nbsp; 领导者居中调度、总领全局的时候，要把自己的精力和时间逐渐从具体工作中解脱出来，要把很多执行层面的事情交给下属去做。在这个过程中有一点是肯定的，就是下属当中能做得跟领导一样、能让领导完全满意的人不多。有些人能力不行做不好，有些人态度不行做得不主动，有些人思路不一样做得不让领导称心。这个时候挑战就来了，看着下属不顺眼，领导怎么办？不能临阵换将，也不能自己上阵，不但要接受这个不满意的结果，而且在下属完成任务以后，还要给下属奖励和表扬。这种情况是最考验一个人的心胸的。</p>
<p>&nbsp;&nbsp;&nbsp; 每一个管理者都应该学会接受一个不完全满意的结果，学会安排不完全满意的下属去做一件让自己不是完全满意的事情。明知道下属会犯错误，甚至连什么样的具体错误都能预见到，还是让下属去做，锻炼下属，培养下属，容许下属犯错误，让下属在犯错误中成长，不断改进工作。</p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/relax/aggbug/381264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2012-06-21 15:42 <a href="http://www.blogjava.net/relax/archive/2012/06/21/381264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决问题之道－－将复杂的问题简单化</title><link>http://www.blogjava.net/relax/archive/2011/11/24/364744.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Thu, 24 Nov 2011 08:49:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2011/11/24/364744.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/364744.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2011/11/24/364744.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/364744.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/364744.html</trackback:ping><description><![CDATA[<div><p>在我们的日常工作过程中，经常会遇到很多复杂的问题，我们怎么能快速解决这些问题呢？这里我要介绍的个人经验就是&#8220;将复杂的问题简单化&#8221;。下面举个刚刚发生的小例子来说明这个方法。</p> <p>最近在做公司ECP升级项目中引入了Portal中间件，因为大家都对这个Portal的使用很不熟悉，所以开发过程中遇到了很多问题。我这个例子就是解决其中的一个问题&#8220;如果配置PORTAL中的用户信息从LDAP中读取&#8221;，其实这件事就是发生在我写些文的前十分钟。下面说一下解决问题的过程。</p> <p>第一步，阅读相关文档，按照文档中的说明进行配置。结果由于文档不是很详细，而公司使用的LDAP服务器是微软的Active  Directory所以未能按照文档说明配置成功。</p> <p>第二步，确定问题点，这个比较困难，因为不知道是因为配置的原因还是portal中间件本身对AD的支持不好。所以我们只能猜测是我们配置的不正确，虽然我们是完全按照文档进行的。</p> <p>第三步，找出我们配置中我们哪里配的不对。这个更困难了，因为已经无资料可查，只能自己看源码了。</p> <p>第四步，看了半天的源码无果，只能调试了。</p> <p>说到调试，而且又是比较复杂的中间产品，可能大家想到的就是使用远程调试的方式了。可是这种方法只能查看一下运行时的变量状态，也不能插入自己的代码进行测试。而且这重启一次又是那几分钟过去了，解决这个问题可能要花很多的时间。</p> <p>所以我想到了另一种方式，搭建了一个只针对问题点的测试环境。在eclipse里新建了一个项目，把我们前期配置的部分拷到项目中，写了单元测试程序。这个时间我只花了十分钟。运行了一下，发现确实不能从LDAP中正确读取出人员信息。因为对LDAP不是很熟只好请外援了，把咱大名顶顶的安工请过来。因为反问题点简化到了就加载两个类和启动一个单元测试。所以安工花了十几分钟就把问题搞定了。</p> <p> </p> <p>故事描述完了，最后总结一下。在一个复杂的环境下调试，其实我们是很难很快发现问题的。同时环境的加载启动还要浪费很多时间。可是我们在确定或猜测出问题点的时候，把环境简化到，只剩下有可能出现的问题地方。可能我们很快就能解决它了。这就是我要说的&#8220;解决问题之道－－将复杂的问题简单化&#8221;。有点啰嗦，很少写东西。以后还得锻炼。这个方法其实我已经用了很多年，说起来简单，希望你能在碰到问题的时候想起这个方法，并能真正的运用它。<br /><div><p>最后感谢安工的全力帮助。这种全心帮助他人的精神，永远是我们学习的榜样。</p></div><br /></p></div><img src ="http://www.blogjava.net/relax/aggbug/364744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2011-11-24 16:49 <a href="http://www.blogjava.net/relax/archive/2011/11/24/364744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>给新人的建议：新项目经理常见难题</title><link>http://www.blogjava.net/relax/archive/2010/10/22/335906.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Fri, 22 Oct 2010 09:34:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2010/10/22/335906.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/335906.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2010/10/22/335906.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/335906.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/335906.html</trackback:ping><description><![CDATA[<p style="text-indent: 28pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">工作两三年后开始有机会带领一个不大团队，这是一个好的机会同时面临着很大的压力。从技术角色转换为管理角色多少有一些新的课题。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">需求范围的控制问题</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">要做到良好的控制需求至少有两个前提：正确理解了客户当前阶段的主干需求（包括：最高期望和底线），其次在需求管理过程中控制节奏。</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">如何在控制需求范围上掌握节奏的主动权，</span><span style="font-family: 宋体; font-size: 14pt">我们经常碰到的是客户追在屁股后面问进度、要文档、加需求、变更需求；以前也曾经考虑过这个问题：如何扭转这样被动的局面呢？这种局面的一个特点就是客户在安排我们的工作；如果我们能安排客户的工作，问题就解决的一大部分。</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">如何让客户听从我们的安排来做事，对不同的客户确实应该有不同的方法，但我们心里必须记住要让他为我所用，而不是被动挨打；有一种方法是：有节奏的抛给他足够多的需求问题</span><span style="font-size: 14pt"><font face="Calibri">,</font></span><span style="font-family: 宋体; font-size: 14pt">当然这些问题都是你分析的结果而不是平白无故造出来的；让他忙起来，而且还要让他感觉你兢兢业业的干活。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">主持会议的问题</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">管理团队免不了开会，安排工作、讨论问题或评审等。</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">第一什么时候开会？开会比独立沟通更有效时；大家以前没合作过需要通过开会来混个脸熟；讨论有争议的问题离线交流不如面对面的来到快捷；无法通过行政命令执行的东西，需要大家通过会议来认同。</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">如何开会？首先为确保参会人有思考的时间，必须将资料提前发给他们；其次会议有明确的议程和目标；在会议中如果跑题要及时拉回来；会议结束要有基本的会议总结，应该有会议纪要，并重复宣读一遍；如果参会的人员有比你级别更高的人，就更需要明确会议目标，否则领导都喜欢高谈阔论浪费大家的时间（好像说的就是本人）。</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">开会本身没什么，关键是确定明确的目标，让会议过程在可控范围之内。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">时间管理的问题</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">一般的开发工程师时间管理重要性不那么明显，可是作为项目负责人就不同了，所有项目组成员的工作效率可能都和你的时间安排有关；其实除了从业务上的优先级来安排外，重点就是：影响他人工作的事情优先安排，比如你的项目组成员等着你的米下锅的事情优先安排，再比如评审时需要其他项目组成员配合的优先安排；再用一句白话：不要让人等我。其他能独立完成的事早点晚点你都有百分百的控制力度。</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">项目负责人就是吃苦在前的活，你必须把准备工作做好了，让其他人能投入战斗。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">民主与决策的问题</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">其实我本人并不是个民主的人，民主的反面就是低效；但民主可以避免犯大错误。</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">作为项目负责人至少不能犹豫不决，当断就断；否则难以取得项目组成员的认可。提交民主讨论前的决策，在没有把握前可以和组内组外的相关人员独立沟通，拿出一个有讨论价值的方案。民主过程必须是查缺补漏而不是推翻重来，特别是工期紧的项目。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">获得团队成员尊重的问题</span></p>
<p style="text-indent: 28pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">项目负责人最值得尊重的是来自于他能做出好的决策，而好的决策来自于：经验、灵活、倾听。</span></p>
<p style="text-indent: 28pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">我并不是一个好的领导，至少我没有耐心倾听；我还是将自己的理解和大家分享。首先，要先做哪些需要由项目负责人做的工作，比如：做决策、和客户保持联系、做计划等；其次要成为了解项目所有信息的人；对项目保持乐观，项目负责人不能抱怨或有悲观情绪；要有高期望值，不要让人们在工作还没有做好的时候就不做了；勇于承认自己犯的错误；以身作则，大家都不愿干的活你要先干，比如写文档。总之尊重是靠努力获得的，项目负责人必须比其他人付出更多。</span></p>
<p style="text-indent: 28pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">项目管理是我们公司总体上也要加强的内容，只有更多人有这方面的经验并分享经验，大家才能共同提高。</span></p>
<br />
声明：此文章并非本人原创，转自公司的内部论坛，是公司一的位同事也是我的领导所写，觉得不错转出来与大家共勉。<br />
<img src ="http://www.blogjava.net/relax/aggbug/335906.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2010-10-22 17:34 <a href="http://www.blogjava.net/relax/archive/2010/10/22/335906.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>给新人的建议：Db设计的常见问题的解决</title><link>http://www.blogjava.net/relax/archive/2010/10/22/335905.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Fri, 22 Oct 2010 09:32:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2010/10/22/335905.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/335905.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2010/10/22/335905.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/335905.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/335905.html</trackback:ping><description><![CDATA[<p style="text-indent: 28pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">第一次做数据库设计的开发人员，难免会碰到一些问题，根据自己的经验简单的总结一下这些问题在没有更好的解决方法前的一种可能的备选方案。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">从技术上对表进行分组</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">我们在做业务数据库设计的时候，个人认为首先要从技术上对表进行分组，下面是个人的标准：</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 42pt" class="MsoListParagraph"><span style="font-size: 14pt"><font face="Calibri">1)</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; font-size: 14pt">流程和交易相关的表：它的特点是记录数保持最小，以便快速响应交易需求，并且相关交易主题对象的生命周期比较短；比如纳税申报表。或者可以称为操作数据库。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 42pt" class="MsoListParagraph"><span style="font-size: 14pt"><font face="Calibri">2)</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; font-size: 14pt">归档后的查询表：它的特点就是记录数很大，有足够多的索引，关键保持查询速度；它的特点就是查的多，改的少；比如车辆档案表。或者可以称为查询数据库。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 42pt" class="MsoListParagraph"><span style="font-size: 14pt"><font face="Calibri">3)</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; font-size: 14pt">提供给分析使用的汇总表：它的特点就是表中存储了很多计算后的数据并且是冗余数据。如果使用</span><span style="font-size: 14pt"><font face="Calibri">BI</font></span><span style="font-family: 宋体; font-size: 14pt">，这一部分就不用了；如果自己设计为了出报表方便还是需要的；比如纳税情况归集表。或者可以称为查询分析表</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 42pt" class="MsoListParagraph"><span style="font-size: 14pt"><font face="Calibri">4)</font><span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体; font-size: 14pt">支持类的表：这一类是对业务的支持，包括代码表、配置表、规则表等。</span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">特别是</span><span style="font-size: 14pt"><font face="Calibri">1</font></span><span style="font-family: 宋体; font-size: 14pt">和</span><span style="font-size: 14pt"><font face="Calibri">2</font></span><span style="font-family: 宋体; font-size: 14pt">在设计时最好分别进行处理，不要将交易数据和查询数据混在一块；如果后续要分别部署交易服务器和查询服务器就麻烦了。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">主键策略</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">个人建议在客户没有要求的情况下全部使用替代健而不是自然键，自然键是指业务本身的唯一区别，比如员工工号等。而替代健建议使用</span><span style="font-size: 14pt"><font face="Calibri">GUID</font></span><span style="font-family: 宋体; font-size: 14pt">，这样在有离线业务处理时也能应付。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">替代健中的冗余问题</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">在使用替代健后，有一个问题就是需要频繁的查找自然健，个人建议增加冗余字段将自然健也加入关联表中。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">代码管理策略</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">在客户没有特别要求的情况下，使用整数来表达代码。并确定代码表的建表策略，是建一个表统一管理还是分别建表管理？个人建议使用一个表管就行了。具体表设计后续可以和大家分享。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">字符串字典管理策略</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">我们经常碰到一个问题，内部一些状态和它的名称的管理；比如审批流程中的审核、批准等等，建议使用字符串字典表统一管理。具体表设计后续可以和大家分享。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">大字段管理策略</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">当碰到大字段时，建议尽量集中管理，并建在一个表空间（</span><span style="font-size: 14pt"><font face="Calibri">Oracle</font></span><span style="font-family: 宋体; font-size: 14pt">）或文件组（</span><span style="font-size: 14pt"><font face="Calibri">Sqlserver</font></span><span style="font-family: 宋体; font-size: 14pt">）上。后续和大家分享一下关于附件管理的表设计。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">使用视图</span></p>
<p style="margin: 0cm 0cm 0pt 21pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">个人很少使用视图，原因就是</span><span style="font-size: 14pt"><font face="Calibri">Powerdesign</font></span><span style="font-family: 宋体; font-size: 14pt">对视图设计支持不好，但是有几个方面给大家建议，所有的</span><span style="font-size: 14pt"><font face="Calibri">Select</font></span><span style="font-family: 宋体; font-size: 14pt">查询最好从视图检索，视图中将相应需要的中文信息统一带出来（比如：代码相对的名称或一个流程的状态名称等）；这样统一处理前台需要的显示问题；在业务层构建对象模型时增加状态名称的属性以保持它；这样做的另一个好处就是减少和物理表的耦合性，毕竟一般系统中查询远比修改要多。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">使用标量函数</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">我们有时有这样的需求，要查今天的收入，要查最近</span><span style="font-size: 14pt"><font face="Calibri">7</font></span><span style="font-family: 宋体; font-size: 14pt">天的收入；这时我们可以使用标量函数来完成这个工作，并能保证时间以数据库服务器一致；当然还有很多其他用途，大家去发现。</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">下面是一个标量函数的声明来去给定日期当月的第一天：</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: blue; font-size: 10pt">Create</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: blue">function</span> <span style="color: teal">[dbo]</span><span style="color: gray">.</span><span style="color: teal">[fn_BeginOfMonth]</span><span style="color: gray">(</span> </span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; font-size: 10pt">&nbsp;<span style="color: teal">@DayUTC</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: blue">datetime</span></span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: gray; font-size: 10pt">)</span></p>
<p style="text-align: left; margin: 0cm 0cm 0pt" class="MsoNormal" align="left"><span style="font-family: 'Courier New'; color: blue; font-size: 10pt">returns</span><span style="font-family: 'Courier New'; font-size: 10pt"> <span style="color: blue">datetime</span></span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">使用模版表</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">用户需要做相似又有微小差别的录入或配置，可以使用模版表来增强用户体验。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">和业务相关的表都包含下列字段</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-size: 14pt"><font face="Calibri">CreatedBy </font></span><span style="font-family: 宋体; font-size: 14pt">创建人</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-size: 14pt"><font face="Calibri">CreatedOn </font></span><span style="font-family: 宋体; font-size: 14pt">创建时间</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-size: 14pt"><font face="Calibri">ModifiedBy </font></span><span style="font-family: 宋体; font-size: 14pt">最后修改人</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-size: 14pt"><font face="Calibri">ModifiedOn </font></span><span style="font-family: 宋体; font-size: 14pt">最后修改时间</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-size: 14pt"><font face="Calibri">VersionNumber</font></span><span style="font-family: 宋体; font-size: 14pt">版本号</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">特别是</span><span style="font-size: 14pt"><font face="Calibri">VersionNumber</font></span><span style="font-family: 宋体; font-size: 14pt">作为开放式锁的必要字段；在修改记录时可以通过它来判断用户提交数据时，是否其他人做过改动，以便后续处理。</span></p>
<p style="margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">暂写这么多，希望大家补充。</span></p>
<br />
声明：此文章并非本人原创，转自公司的内部论坛，是公司一的位同事也是我的领导所写，觉得不错转出来与大家共勉。<br />
<img src ="http://www.blogjava.net/relax/aggbug/335905.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2010-10-22 17:32 <a href="http://www.blogjava.net/relax/archive/2010/10/22/335905.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>给新人的建议：浅谈需求分析的一些方法</title><link>http://www.blogjava.net/relax/archive/2010/10/22/335904.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Fri, 22 Oct 2010 09:31:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2010/10/22/335904.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/335904.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2010/10/22/335904.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/335904.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/335904.html</trackback:ping><description><![CDATA[<p style="text-indent: 28pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">需求分析是一个软件成败的决定因素，对于第一次独立承担这项任务的新人来说，有可能无从下手，临时看书好像又来不及。这里将我的理解和大家分享一下，希望对新人能有所帮助。</span></p>
<p style="text-indent: 28pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">无论是什么项目，假设我们已经对客户的大概需求做过一些收集，好的客户可能有一些需求文档，差一点的用嘴零散的说过；收到这些信息后，我们如何分析呢？很多第一次做需求分析的人，会很自然的将分析后的功能变成数据库的</span><span style="font-size: 14pt"><font face="Calibri">CRUD</font></span><span style="font-family: 宋体; font-size: 14pt">；比如：添加员工、删除员工、修改员工等，但这里客户可能要的是员工入职、员工离职、员工异动。</span></p>
<p style="text-indent: 28pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">为了简化分析过程，我们可以考虑分四步，每一步都建立在前一半之上的。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">识别主题对象</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">这是分析的第一步，简单的方法是将业务方面的相关名词进行收集，从中选出相应的名词作为主题对象；以车购税为例：最后确定为&#8220;纳税申报表&#8221;、&#8220;税票&#8221;、&#8220;车辆档案&#8221;、&#8220;最低计税价格&#8221;、&#8220;免征车&#8221;等。</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">识别后再对主题对象的结构性的需求进行分析，说白了就是确定每个主题对象的内容，以及主题对象间的依赖关系；确定结构最初来源于一些客户提供的表格，依赖关系要根据业务分析才能得出。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">识别主题对象上的业务规则</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">识别出了主题对象，下一步从规则上描述业务对主题对象的约束，比如：纳税申报时如何确定计税价格，如何确定税率，如何确定免税等。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">识别主题对象上的业务流程和事件</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">围绕主题对象它有哪些流程，以及可预见的驱动流程的事件。流程可以分为三类：主题对象从无到有的流程、主题对象生命周期内的业务流程、主题对象生命周期结束的流程。</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">比如一个员工从非员工变成员工，有入职流程；</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">员工在职内流程就很多：考勤有关的请假、加班、出差，还有很多异动流程；</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">从员工变成非员工，有离职流程。</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">对每一个流程来总结事件，事件分为：系统事件和人工事件；系统事件是机器自动执行的比如：超时等，而人工事件是由交互完成的比如：领导批准请假等。</span></p>
<p style="text-indent: 0cm; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: 宋体; font-size: 14pt">在分析流程的过程中，逐步完善业务规则和主题对象的结构性需求。</span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt" class="MsoListParagraph"><span style="font-family: Wingdings; font-size: 14pt">&#216;&nbsp;</span><span style="font-family: 宋体; font-size: 14pt">识别主题对象上的数据分析价值</span></p>
<p style="text-indent: 28pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">最后，也是新人最容易忽视的一点；以上所有的分析更多的站在基本交互业务分析的；接下来我们应该考虑从管理角度来分析需求，也就是在每一个主题对象上我们能提供哪些有价值的分析报告（一般意义上的报表）。这样就照顾到了客户的管理层。</span></p>
<p style="text-indent: 28pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">通过每一步的分析，就能引出很多需要和客户交流的问题；这样就避免了总想客户能讲讲需求，可是又不知道要客户讲哪方面的内容。</span></p>
<p style="text-indent: 28pt; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 14pt">需求分析是一个很大的话题，这里仅仅是一些提示性的，希望有心人跟帖完善。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;声明：此文章并非本人原创，转自公司的内部论坛，是公司一的位同事也是我的领导所写，觉得不错转出来与大家共勉。</span><br />
</p>
<img src ="http://www.blogjava.net/relax/aggbug/335904.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2010-10-22 17:31 <a href="http://www.blogjava.net/relax/archive/2010/10/22/335904.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL Server跨数据库访问及分布式事务的使用及配置</title><link>http://www.blogjava.net/relax/archive/2010/10/18/335419.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Mon, 18 Oct 2010 02:50:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2010/10/18/335419.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/335419.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2010/10/18/335419.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/335419.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/335419.html</trackback:ping><description><![CDATA[<div style="layout-grid:  15.6pt none" class="Section0">
<h2 style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt; margin-left: -21pt"><span style="font-family: '黑体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'">一、</span><span style="font-family: '黑体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'">跨数据库访问</span><span style="font-family: '黑体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></h2>
<h3 style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'">第一种方式</span><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></h3>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">SELECT&nbsp;*&nbsp;FROM&nbsp;OPENDATASOURCE(</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;'SQLOLEDB',</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;'Data&nbsp;Source=<font face="宋体">远程</font><font face="Times New Roman">ip;User&nbsp;ID=sa;Password=</font><font face="宋体">密码</font><font face="Times New Roman">'</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;).<font face="宋体">库名</font><font face="Times New Roman">.dbo.</font><font face="宋体">表名</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;WHERE&nbsp;<font face="宋体">条件</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<h3 style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'">第二种方式</span><span style="font-family: '宋体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></h3>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">在</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">sql&nbsp;server<font face="宋体">组</font><font face="Times New Roman">-&gt;</font><font face="宋体">服务</font><font face="Times New Roman">-&gt;</font><font face="宋体">安全性</font><font face="Times New Roman">-&gt;</font><font face="宋体">链接服务器下建立一个具有别名的链接服务器。然后通过以下方式访问：</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">SELECT&nbsp;*&nbsp;FROM&nbsp;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">[<font face="宋体">链接服务器名</font><font face="Times New Roman">]</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">.<font face="宋体">库名</font><font face="Times New Roman">.dbo.</font><font face="宋体">表名</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">&nbsp;WHERE&nbsp;<font face="宋体">条件</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">需要注意的是建立链接数据库服务器类型如果选择&#8220;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">SQL&nbsp;server<font face="宋体">&#8221;，那么链接服务器名称必须用要链接的服务器的在网络中的机器名或</font><font face="Times New Roman">IP,</font><font face="宋体">如果要使用其它别名，可以在</font><font face="Times New Roman">WINDOWS\system32\drivers\etc\hosts</font><font face="宋体">文件里添加一个别名的映射。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; background: rgb(249,249,249); color: rgb(17,0,0); font-size: 9pt; mso-spacerun: 'yes'; mso-shading: rgb(249,249,249)"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">解除<font face="Times New Roman">SQL</font><font face="宋体">阻止</font></span><span style="font-family: '宋体'; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'">（<font face="Times New Roman">sqlserver&nbsp;2005</font><font face="宋体">情况）</font></span><span style="font-family: 'Arial'; background: rgb(255,255,255); color: rgb(51,51,51); font-size: 10.5pt; mso-spacerun: 'yes'; mso-shading: rgb(255,255,255)"><br />
</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">SQL&nbsp;Server&nbsp;<font face="宋体">阻止了对组件&nbsp;</font><font face="Times New Roman">&#8216;Ad&nbsp;Hoc&nbsp;Distributed&nbsp;Queries&#8217;&nbsp;</font><font face="宋体">的&nbsp;</font><font face="Times New Roman">STATEMENT&#8217;OpenRowset/OpenDatasource&#8217;&nbsp;</font><font face="宋体">的访问，因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用&nbsp;</font><font face="Times New Roman">sp_configure&nbsp;</font><font face="宋体">启用&nbsp;</font><font face="Times New Roman">&#8216;Ad&nbsp;Hoc&nbsp;Distributed&nbsp;Queries&#8217;</font><font face="宋体">。有关启用&nbsp;</font><font face="Times New Roman">&#8216;Ad&nbsp;Hoc&nbsp;Distributed&nbsp;Queries&#8217;&nbsp;</font><font face="宋体">的详细信息，请参阅&nbsp;</font><font face="Times New Roman">SQL&nbsp;Server&nbsp;</font><font face="宋体">联机丛书中的&nbsp;</font><font face="Times New Roman">&#8220;</font><font face="宋体">外围应用配置器</font><font face="Times New Roman">&#8221;</font><font face="宋体">。</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">因为<font face="Times New Roman">SQL2005</font><font face="宋体">默认是没有开启</font><font face="Times New Roman">&#8217;Ad&nbsp;Hoc&nbsp;Distributed&nbsp;Queries&#8217;&nbsp;</font><font face="宋体">组件，开启方法如下</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">EXEC&nbsp;sp_configure&nbsp;'show&nbsp;advanced&nbsp;options',&nbsp;1</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">GO</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">RECONFIGURE</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">GO</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">EXEC&nbsp;sp_configure&nbsp;'Ad&nbsp;Hoc&nbsp;Distributed&nbsp;Queries',&nbsp;1</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">GO</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">RECONFIGURE</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">GO</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">关闭<font face="Times New Roman">Ad&nbsp;Hoc&nbsp;Distributed&nbsp;Queries</font><font face="宋体">：</font></span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">exec&nbsp;sp_configure&nbsp;'Ad&nbsp;Hoc&nbsp;Distributed&nbsp;Queries',&nbsp;0</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">reconfigure</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">exec&nbsp;sp_configure&nbsp;'show&nbsp;advanced&nbsp;options',&nbsp;0</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">reconfigure</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; background: rgb(249,249,249); color: rgb(17,0,0); font-size: 9pt; mso-spacerun: 'yes'; mso-shading: rgb(249,249,249)"><o:p></o:p></span></p>
<h2 style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt; margin-left: -21pt"><span style="font-family: '黑体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'">二、</span><span style="font-family: '黑体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'">分布式事务的配置</span><span style="font-family: '黑体'; font-size: 16pt; font-weight: bold; mso-spacerun: 'yes'"><o:p></o:p></span></h2>
<p style="margin-top: 0pt; margin-bottom: 0pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">1．</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">用</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">DTCPing.exe</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">工具测试两台机器的</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">DTC<font face="宋体">服务是否可以联通。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">2．</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">如果有问题检查</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">MSDTC</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">服务是否启动。</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">3．</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">MSDTC<font face="宋体">依赖于</font><font face="Times New Roman">RPC,RPC</font><font face="宋体">使用的端口是</font><font face="Times New Roman">135,</font><font face="宋体">测试</font><font face="Times New Roman">135</font><font face="宋体">端口是否打开</font><font face="Times New Roman">.</font><font face="宋体">是否有防火墙</font><font face="Times New Roman">?</font><font face="宋体">如果有先关了防火墙</font><font face="Times New Roman">.&nbsp;&nbsp;&nbsp;telnet&nbsp;&nbsp;&nbsp;IP&nbsp;&nbsp;&nbsp;135&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font face="宋体">如果是关闭的打开它</font><font face="Times New Roman">.&nbsp;&nbsp;</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">4．</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">打开&#8220;控制面板</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">-&gt;</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">管理工具</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">-&gt;<font face="宋体">组件服务&#8221;，然后展开&#8220;组件服务</font><font face="Times New Roman">-&gt;</font><font face="宋体">计算机</font><font face="Times New Roman">-&gt;</font><font face="宋体">我的电脑&#8221;右键属性。选择</font><font face="Times New Roman">MSDTC</font><font face="宋体">的</font><font face="Times New Roman">Tab</font><font face="宋体">栏，点击安全性配置按钮，打开窗口，将&#8220;网络</font><font face="Times New Roman">DTC</font><font face="宋体">访问&#8221;选项选中，并将&#8220;允许远程客户端&#8221;，&#8220;允许入站&#8221;，&#8220;允许出站&#8221;都选中，并选择&#8220;不要求进行验证&#8221;，&#8220;启用事务</font><font face="Times New Roman">Internet</font><font face="宋体">协议（</font><font face="Times New Roman">TIP</font><font face="宋体">）事务&#8221;，&#8220;启用</font><font face="Times New Roman">XA</font><font face="宋体">事务&#8221;都选中。然后确定即可。（以上选项</font><font face="Times New Roman">windows</font><font face="宋体">默认不开放，必须配置）</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">5．</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">检查你的两台服务器是否在同一个域中<font face="Times New Roman">.&nbsp;&nbsp;</font><font face="宋体">如果不在同一个域中</font><font face="Times New Roman">,</font><font face="宋体">是否建立可信任联接</font><font face="Times New Roman">.&nbsp;&nbsp;</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">6．</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">如果是<font face="Times New Roman">WIN2000,</font><font face="宋体">升级到</font><font face="Times New Roman">SP4&nbsp;&nbsp;&nbsp;</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">7．</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">确认</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">MDAC</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">版本是</span><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">2.6<font face="宋体">以上</font><font face="Times New Roman">,</font><font face="宋体">最好是</font><font face="Times New Roman">2.8.&nbsp;&nbsp;</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">8．</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">在<font face="Times New Roman">SQL&nbsp;server</font><font face="宋体">存储过程中使用分布式事务时，必须</font><font face="Times New Roman">SET&nbsp;&nbsp;&nbsp;XACT_ABORT&nbsp;&nbsp;&nbsp;ON&nbsp;--</font><font face="宋体">设置分布式事务如果发生问题主动回滚操作</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt" class="p0"><span style="font-family: 'Times New Roman'; font-size: 10.5pt; mso-spacerun: 'yes'">9．</span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'">可以声明使用BEGIN&nbsp;DISTRIBUTED&nbsp;TRANSACTION<font face="宋体">，如果未明确生明，在事务块中包含链接服务器的访问，</font><font face="Times New Roman">SQL&nbsp;server</font><font face="宋体">会自动升级成分布式事务。</font></span><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt; margin-left: -11.76pt" class="p0"><span style="font-family: '宋体'; font-size: 10.5pt; mso-spacerun: 'yes'"><o:p></o:p></span></p>
</div>
<img src ="http://www.blogjava.net/relax/aggbug/335419.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2010-10-18 10:50 <a href="http://www.blogjava.net/relax/archive/2010/10/18/335419.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件编程21法则(转自外刊IT评论)</title><link>http://www.blogjava.net/relax/archive/2010/10/08/333954.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Fri, 08 Oct 2010 02:12:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2010/10/08/333954.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/333954.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2010/10/08/333954.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/333954.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/333954.html</trackback:ping><description><![CDATA[任何一个有经验的程序员都知道，软件开发遵循着一些不成文的法则。然而，如果你不遵循这些法则也并不意味着会受到惩罚；相反，有时你还会获得意外的好处。 <br />
<br />
下面的就是软件编程中的21条法则： <br />
<br />
&nbsp;&nbsp; 1. 任何程序一旦部署即显陈旧。 <br />
&nbsp;&nbsp; 2. 修改需求规范来适应程序比反过来做更容易。 <br />
&nbsp;&nbsp; 3. 一个程序如果很有用，那它注定要被改掉。 <br />
&nbsp;&nbsp; 4. 一个程序如果没用，那它一定会有很好的文档。 <br />
&nbsp;&nbsp; 5. 任何程序里都仅仅只有10%的代码会被执行到。 <br />
&nbsp;&nbsp; 6. 软件会一直膨胀到耗尽所有资源为止。 <br />
&nbsp;&nbsp; 7. 任何一个有点价值的程序里都会有至少一个bug。 <br />
&nbsp;&nbsp; 8. 原型完美的程度跟审视的人数成反比，反比值会随着涉及的资金数增大。 <br />
&nbsp;&nbsp; 9. 软件直到被变成产品运行至少6个月后，它最严重的问题才会被发现。 <br />
&nbsp; 10. 无法检测到的错误的形式无限多样，而能被检测到的正好相反，被定义了的十分有限。 <br />
&nbsp; 11. 修复一个错误所需要投入的努力会随着时间成指数级增加。 <br />
&nbsp; 12. 软件的复杂度会一直增加，直到超出维护这个程序的人的承受能力。 <br />
&nbsp; 13. 任何自己的程序，几个月不看，形同其他人写的。 <br />
&nbsp; 14. 任何一个小程序里面都有一个巨大的程序蠢蠢欲出。 <br />
&nbsp; 15. 编码开始的越早，花费的时间越长。 <br />
&nbsp; 16. 一个粗心的项目计划会让你多花3倍的时间去完成；一个细心的项目计划只会让你多花2倍的时间。 <br />
&nbsp; 17. 往大型项目里添加人手会使项目更延迟。 <br />
&nbsp; 18. 一个程序至少会完成90%，但永远完成不了超过95%。 <br />
&nbsp; 19. 如果你想麻烦被自动处理掉，你得到的是自动产生的麻烦。 <br />
&nbsp; 20. 开发一个傻瓜都会使用的软件，只有傻瓜愿意使用它。&nbsp;<br />
&nbsp; 21. 用户不会真正的知道要在软件里做些什么，除非使用过。 <br />
<img src ="http://www.blogjava.net/relax/aggbug/333954.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2010-10-08 10:12 <a href="http://www.blogjava.net/relax/archive/2010/10/08/333954.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决PowerDesigner中Name与Code同步的问题</title><link>http://www.blogjava.net/relax/archive/2010/03/10/315017.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Wed, 10 Mar 2010 00:58:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2010/03/10/315017.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/315017.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2010/03/10/315017.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/315017.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/315017.html</trackback:ping><description><![CDATA[<span style="line-height: 21px; border-collapse: collapse; font-family: verdana, 'ms song', Arial, Helvetica, sans-serif; color: #393939; font-size: 14px">&nbsp;<span style="padding-bottom: 0px; line-height: 19px; margin: 0px; padding-left: 0px; padding-right: 0px; color: #333333; font-size: 10pt; padding-top: 0px">PowerDesigner</span><span style="padding-bottom: 0px; line-height: 19px; margin: 0px; padding-left: 0px; padding-right: 0px; color: #333333; font-size: 10pt; padding-top: 0px">中，但修改了某个字段的<span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">name</span>，其<span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">code</span>也跟着修改，这个问题很讨厌，因为一般来说，<span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">name</span>是中文的，<span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">code</span>是字段名。</span>
<p style="text-align: left; padding-bottom: 0px; line-height: 21px; text-indent: 0px; margin: 0cm 0cm 0pt; padding-left: 0px; padding-right: 0px; padding-top: 0px" align="left"><span style="padding-bottom: 0px; line-height: 19px; margin: 0px; padding-left: 0px; padding-right: 0px; color: #333333; font-size: 10pt; padding-top: 0px">解决方法如下：</span></p>
<p style="text-align: left; padding-bottom: 0px; line-height: 21px; text-indent: 0px; margin: 0cm 0cm 0pt; padding-left: 0px; padding-right: 0px; padding-top: 0px" align="left"><span style="padding-bottom: 0px; line-height: 19px; margin: 0px; padding-left: 0px; padding-right: 0px; color: #333333; font-size: 10pt; padding-top: 0px">1</span><span style="padding-bottom: 0px; line-height: 19px; margin: 0px; padding-left: 0px; padding-right: 0px; color: #333333; font-size: 10pt; padding-top: 0px">、选择<span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">Tools-&gt;GeneralOptions...</span>菜单，出现<span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">General Options</span>对话框。</span></p>
<p style="text-align: left; padding-bottom: 0px; line-height: 21px; text-indent: 0px; margin: 0cm 0cm 0pt; padding-left: 0px; padding-right: 0px; padding-top: 0px" align="left"><span style="padding-bottom: 0px; line-height: 19px; margin: 0px; padding-left: 0px; padding-right: 0px; color: #333333; font-size: 10pt; padding-top: 0px">2</span><span style="padding-bottom: 0px; line-height: 19px; margin: 0px; padding-left: 0px; padding-right: 0px; color: #333333; font-size: 10pt; padding-top: 0px">、从<span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">Category</span>中选择<span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">Dialog</span>项。</span></p>
<p style="text-align: left; padding-bottom: 0px; line-height: 21px; text-indent: 0px; margin: 0cm 0cm 0pt; padding-left: 0px; padding-right: 0px; padding-top: 0px" align="left"><span style="padding-bottom: 0px; line-height: 19px; margin: 0px; padding-left: 0px; padding-right: 0px; color: #333333; font-size: 10pt; padding-top: 0px">3</span><span style="padding-bottom: 0px; line-height: 19px; margin: 0px; padding-left: 0px; padding-right: 0px; color: #333333; font-size: 10pt; padding-top: 0px">、取消右边<span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&#8220;Name to Code mirroring&#8221;</span>复选框。</span></p>
</span>
<img src ="http://www.blogjava.net/relax/aggbug/315017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2010-03-10 08:58 <a href="http://www.blogjava.net/relax/archive/2010/03/10/315017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>处事真言</title><link>http://www.blogjava.net/relax/archive/2010/02/01/311507.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Mon, 01 Feb 2010 06:52:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2010/02/01/311507.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/311507.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2010/02/01/311507.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/311507.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/311507.html</trackback:ping><description><![CDATA[<font style="height: auto; color: #00cc00"><strong><font style="height: auto; color: #00cc00"><strong>&nbsp;&nbsp;&nbsp; 1.长相不令人讨厌，如果长得不好，就让自己有才气；如果才气也没有，那就总是微笑。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;2.气质是关键。如果时尚学不好，宁愿纯朴。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;3.与人握手时，可多握一会儿。真诚是宝。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;4.不必什么都用&#8220;我&#8221;做主语。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;5.不要向朋友借钱。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;6.不要&#8220;逼&#8221;客人看你的家庭相册。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;7.与人打&#8220;的&#8221;时，请抢先坐在司机旁。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;8.坚持在背后说别人好话，别担心这好话传不到当事人耳朵里。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;9.有人在你面前说某人坏话时，你只微笑。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;10.自己开小车，不要特地停下来和一个骑自行车的同事打招呼。人家会以为你在炫耀。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;11.同事生病时，去探望他。很自然地坐在他病床上，回家再认真洗手。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;12.不要把过去的事全让人知道。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;13.尊敬不喜欢你的人。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;14.对事不对人；或对事无情，对人要有情；或做人第一，做事其次。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;15.自我批评总能让人相信，自我表扬则不然。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;16.没有什么东西比围观者们更能提高你的保龄球的成绩了。所以，平常不要吝惜你的喝彩声。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;17.不要把别人的好，视为理所当然。要知道感恩。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;18.榕树上的&#8220;八哥&#8221;在讲，只讲不听，结果乱成一团。学会聆听。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;19.尊重传达室里的师傅及搞卫生的阿姨。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;20.说话的时候记得常用&#8220;我们&#8221;开头。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;21.为每一位上台唱歌的人鼓掌。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;22.有时要明知故问：你的钻戒很贵吧！有时，即使想问也不能问，比如：你多大了？ <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;23.话多必失，人多的场合少说话。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;24.把未出口的&#8220;不&#8221;改成：&#8220;这需要时间&#8221;、&#8220;我尽力&#8221;、&#8220;我不确定&#8221;、&#8220;当我决定后，会给你打电话&#8221;&#8230;&#8230; <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;25.不要期望所有人都喜欢你，那是不可能的，让大多数人喜欢就是成功的表现。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;26.当然，自己要喜欢自己。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;27.如果你在表演或者是讲演的时候，如果只要有一个人在听也要用心的继续下去，即使没有人喝采也要演，因为这是你成功的道路，是你成功的摇篮，你不要看的人成功，而是要你成功。 <br />
&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;28.如果你看到一个贴子还值得一看的话，那么你一定要回复，因为你的回复会给人继续前进的勇气，会给人很大的激励。同时也会让人感激你</strong></font></strong></font>
<img src ="http://www.blogjava.net/relax/aggbug/311507.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2010-02-01 14:52 <a href="http://www.blogjava.net/relax/archive/2010/02/01/311507.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu root 用户 自动登录 </title><link>http://www.blogjava.net/relax/archive/2009/12/08/305188.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Tue, 08 Dec 2009 09:30:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2009/12/08/305188.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/305188.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2009/12/08/305188.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/305188.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/305188.html</trackback:ping><description><![CDATA[最近在折腾ubuntu发现，这家伙安全限制的还挺多。通过&#8220;登陆窗口设置&#8221;还不能让root用户自动登陆。折腾了半天，终于能过修改配置文件的方式实现了。<br />
<br />
修改 /etc/gdm/custom.conf <br />
TimedLoginEnable=false<br />
AutomaticLoginEnable=true 这个设为true<br />
TimedLogin=root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个自已改成root<br />
AutomaticLogin=root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个自已改成root<br />
TimedLoginDelay=30<br />
<br />
需要注意的是ubuntu安装好后，默认是不启动root用户的，你可以给root设置个密码就可以启用root 了。
<img src ="http://www.blogjava.net/relax/aggbug/305188.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2009-12-08 17:30 <a href="http://www.blogjava.net/relax/archive/2009/12/08/305188.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu下QT开发不能编译报collect2: ld returned 1 exit status的解决</title><link>http://www.blogjava.net/relax/archive/2009/12/04/304801.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Fri, 04 Dec 2009 09:21:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2009/12/04/304801.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/304801.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2009/12/04/304801.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/304801.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/304801.html</trackback:ping><description><![CDATA[sudo apt-get install libfreetype6-dev<br />
sudo apt-get install libavahi-gobject-dev<br />
sudo apt-get install libSM-dev<br />
sudo apt-get install libXrender-dev<br />
sudo apt-get install libfontconfig-dev<br />
sudo apt-get install libXext-dev<br />
<br />
<p>Edit: To get OpenGL to build I also had to install libgl1-mesa-dev and freeglut3-dev.</p>
<p>Edit2: Audio required libphonon-dev.</p>
安装以上包后就可以正常使用了。
 <img src ="http://www.blogjava.net/relax/aggbug/304801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2009-12-04 17:21 <a href="http://www.blogjava.net/relax/archive/2009/12/04/304801.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Flash player的安全限制（不能播放本地文件）</title><link>http://www.blogjava.net/relax/archive/2009/12/04/304786.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Fri, 04 Dec 2009 08:20:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2009/12/04/304786.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/304786.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2009/12/04/304786.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/304786.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/304786.html</trackback:ping><description><![CDATA[最近在linux下开发flex,在开发的过程中遇到一个很大的问题，就是在windows下编译的能播放flv的swf文件到linux下就不能播放了。真是一头雾水呀。今天和同事试了一整天。终于找到了问题的关键。<br />
这个问题原来是由于flash的安全问题造成的。<br />
在/home/{user}/.macromedia/Flash_Player/#Security/FlashPlayerTrust目录下有好多个配置文件。只有在配置文件里指定了路径下的swf文件才能够读取本地的flv.<br />
后来又从网上查了一下相关的问题，整体总结一下。<br />
ubantu Linux下<br />
找到配置目录：/home/{user}/.macromedia/Flash_Player/#Security/FlashPlayerTrust<br />
在下面新建个文件内容写上需要的路径，例如：<code>/home/{user}保存flash就可以正常使用本地文件了<br />
unbantu下没有找到适用所有用户的，也许没有吧。其它操作系统如下。<br />
<li>
<p><strong>Windows 所有用户: </strong></p>
<p><kbd>&lt;系统 &#8250; \Macromed\Flash\FlashPlayerTrust</kbd></p>
<p></p>
<p><strong>Windows 单个用户: </strong></p>
</li>
<li>
<p><kbd>&lt;应用程序数据 &#8250; \Macromedia\Flash Player\#Security\FlashPlayerTrust</kbd> </p>
</li>
<li>
<p><strong>Mac OS 所有用户: </strong></p>
<p><kbd>&lt;应用程序支持 &#8250; /Macromedia/FlashPlayerTrust </kbd></p>
<p><strong>Mac OS 单个用户: </strong></p>
</li>
<li>
<p><kbd>&lt;应用程序数据 &#8250; /Macromedia/Flash Player/#Security/FlashPlayerTrust </kbd></p>
<p>但愿看过此文章的其它朋友，别再和我一样为这个问题绕了好几天。</p>
</li>
</code>
<img src ="http://www.blogjava.net/relax/aggbug/304786.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2009-12-04 16:20 <a href="http://www.blogjava.net/relax/archive/2009/12/04/304786.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 编码转换（转）</title><link>http://www.blogjava.net/relax/archive/2009/11/17/302686.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Tue, 17 Nov 2009 05:57:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2009/11/17/302686.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/302686.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2009/11/17/302686.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/302686.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/302686.html</trackback:ping><description><![CDATA[<p>由于Unicode兼容ASCII（0～255），因此，上面得到的Unicode就是ASCII。 至于转换成二进制或其他进制，Java API提供了方便函数，你可以查Java的API手册。 </p>
<p>以字符a的ASCII为例： int i = 'a'; String iBin = Integer.toBinaryString(i);//二进制 String iHex = Integer.toHexString(i);//十六进制 String iOct = Integer.toOctalString(i);//八进制 String iWoKao = Integer.toString(i,3);//三进制或任何你想要的35进制以下的进制 DEC</p>
<p>[集]java中进行二进制，八进制，十六进制，十进制间进行相互转换&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 十进制转成十六进制： Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 Integer.valueOf("FFFF",16).toString() 八进制转成十进制 Integer.valueOf("876",8).toString() 二进制转十进制 Integer.valueOf("0101",2).toString()</p>
<p>有什么方法可以直接将2,8,16进制直接转换为10进制的吗? java.lang.Integer类 parseInt(String s, int radix) 使用第二个参数指定的基数，将字符串参数解析为有符号的整数。 examples from jdk: parseInt("0", 10) returns 0 parseInt("473", 10) returns 473 parseInt("-0", 10) returns 0 parseInt("-FF", 16) returns -255 parseInt("1100110", 2) returns 102 parseInt("2147483647", 10) returns 2147483647 parseInt("-2147483648", 10) returns -2147483648 parseInt("2147483648", 10) throws a NumberFormatException parseInt("99", 8) throws a NumberFormatException parseInt("Kona", 10) throws a NumberFormatException parseInt("Kona", 27) returns 411787</p>
<p>进制转换如何写（二，八，十六）不用算法 Integer.toBinaryString Integer.toOctalString Integer.toHexString </p>
<p>例一：</p>
<p>public class Test{&nbsp;&nbsp; public static void main(String args[]){</p>
<p>&nbsp;&nbsp; int i=100;&nbsp;&nbsp;&nbsp; String binStr=Integer.toBinaryString(i);&nbsp;&nbsp;&nbsp; String otcStr=Integer.toOctalString(i);&nbsp;&nbsp;&nbsp; String hexStr=Integer.toHexString(i);&nbsp;&nbsp;&nbsp; System.out.println(binStr);</p>
<p>例二：</p>
<p>public class TestStringFormat {&nbsp;&nbsp; public static void main(String[] args) {&nbsp;&nbsp;&nbsp; if (args.length == 0) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("usage: java TestStringFormat &lt;a number&gt;");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.exit(0);&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp; Integer factor = Integer.valueOf(args[0]);</p>
<p>&nbsp;&nbsp; String s;</p>
<p>&nbsp;&nbsp; s = String.format("%d", factor);&nbsp;&nbsp;&nbsp; System.out.println(s);&nbsp;&nbsp;&nbsp; s = String.format("%x", factor);&nbsp;&nbsp;&nbsp; System.out.println(s);&nbsp;&nbsp;&nbsp; s = String.format("%o", factor);&nbsp;&nbsp;&nbsp; System.out.println(s);&nbsp;&nbsp; } }</p>
<p>各种数字类型转换成字符串型： </p>
<p>String s = String.valueOf( value); // 其中 value 为任意一种数字类型。 </p>
<p>字符串型转换成各种数字类型： </p>
<p>String s = "169"; byte b = Byte.parseByte( s ); short t = Short.parseShort( s ); int i = Integer.parseInt( s ); long l = Long.parseLong( s ); Float f = Float.parseFloat( s ); Double d = Double.parseDouble( s ); </p>
<p>数字类型与数字类对象之间的转换： </p>
<p>byte b = 169; Byte bo = new Byte( b ); b = bo.byteValue(); </p>
<p>short t = 169; Short to = new Short( t ); t = to.shortValue(); </p>
<p>int i = 169; b = bo.byteValue(); </p>
<p>short t = 169; Short to = new Short( t ); t = to.shortValue(); </p>
<p>int i = 169; Integer io = new Integer( i ); i = io.intValue(); </p>
<p>long l = 169; Long lo = new Long( l ); l = lo.longValue(); </p>
<p>float f = 169f; Float fo = new Float( f ); f = fo.floatValue(); </p>
<p>double d = 169f; Double dObj = new Double( d ); d = dObj.doubleValue();</p>
<img src ="http://www.blogjava.net/relax/aggbug/302686.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2009-11-17 13:57 <a href="http://www.blogjava.net/relax/archive/2009/11/17/302686.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过blazeds让FLEX与java通信</title><link>http://www.blogjava.net/relax/archive/2009/11/10/301812.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Tue, 10 Nov 2009 05:12:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2009/11/10/301812.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/301812.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2009/11/10/301812.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/301812.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/301812.html</trackback:ping><description><![CDATA[<p>准备：</p>
<p>JDK:sun jdk 1.6</p>
<p>开发工具：eclipse+flex builder</p>
<p>flex sdk版本:&nbsp; 3.2</p>
<p>应用服务器： tomcat 6.0</p>
<p>blazed:blazeds-turnkey-3.2.0.3978 下载地址是：http://flexorg.wip3.adobe.com/blazeds/3.0.x/milestone/3978/blazeds-turnkey-3.2.0.3978.zip</p>
<p>新建项目：</p>
<p>&nbsp;&nbsp;&nbsp; 等全部环境安装好后，打开装了flex builder(flex 4.0以后叫flash builder了)，选择Flex Development 视图，新建项目选择Flex Project ,填写新建项目的名称，项目存储的目录，在Server Technology标签中的application Server Type选择J2EE,选中Use remote object access service和Create combined Java/Flex project using WTP（这个一定要记的选上）选项，然后Next.如下图：</p>
<p>&nbsp;<img border="0" alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zk_2000/EntryImages/20091102/newProject.JPG" width="742" height="594" /></p>
<p>&nbsp;&nbsp;&nbsp; 在第二页中J2EE settings，Target runtime如果还没有可以先添加一个预先准备后的tomcat环境。然后选择它。在Compiled Flex application location的Out Folder改成与上面Content Folder相同的WebContent，注意这个一定要改，否则无法自动编译过去，调试时浏览器无法访问。如下图：</p>
<p>&nbsp;<img border="0" alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zk_2000/EntryImages/20091102/newProject2.JPG" width="742" height="647" /></p>
<p>新建好项目后，还要修改一个关键的项目属性。将Flex Server标签中的Context Root修改为FirstJavaFlex（这一块很重要，在没有配置RemoteObject 的endPoint属性的时候，会用这个Context去编译Flex），还要注意一下Root URL参数中的端口号，因为默认是8080,可是如果你用的是blazeds-turnkey包中的tomcat的时候，那个端口号是8400记着一定也要改一下。如下图：</p>
<p>&nbsp;<img border="0" alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zk_2000/EntryImages/20091103/newProject4.JPG" width="666" height="566" /></p>
<p><br />
就这样新建好项目之后，java源文件放在src目录下，flex源文件放在flex_src目录下。</p>
<p>接下来就是写代码了。新建好项目之后会在flex_src下生成一个FirstJavaFlex.mxml的文件。</p>
<p>我的java类的代码如下：</p>
<p>view plaincopy to clipboardprint?<br />
package com.java.flex;&nbsp;&nbsp; <br />
&nbsp; <br />
public class FirstJavaFlex {&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; public String helloJavaFlex(String name) {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.err.println("call java success!");&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "welcome to JavaFlex world: "+name;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
}&nbsp;&nbsp; <br />
&nbsp;&nbsp; <br />
package com.java.flex;</p>
<p>public class FirstJavaFlex {</p>
<p>&nbsp;public String helloJavaFlex(String name) {<br />
&nbsp;&nbsp;System.err.println("call java success!");<br />
&nbsp;&nbsp;return "welcome to JavaFlex world: "+name;<br />
&nbsp;}<br />
}<br />
&nbsp; </p>
<p>这个代码也很简单吧不多说了。</p>
<p>下面是最关键的一步打开WEB-INF\flex目录中的remoting-config.xml文件在里面</p>
<p>添加一段远程目录的注册，</p>
<p>&nbsp;&lt;destination id="firstJavaFlex"&gt;<br />
&nbsp; &lt;properties&gt;<br />
&nbsp;&nbsp; &lt;source&gt;com.java.flex.FirstJavaFlex&lt;/source&gt;<br />
&nbsp; &lt;/properties&gt;<br />
&nbsp;&lt;/destination&gt;</p>
<p>添加完后的remoting-config.xml文件如下：</p>
<p>view plaincopy to clipboardprint?<br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;&nbsp; <br />
&lt;service id="remoting-service"&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; class="flex.messaging.services.RemotingService"&gt;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;adapters&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;adapter-definition id="java-object"&nbsp;&nbsp;&nbsp; <br />
&nbsp; <br />
class="flex.messaging.services.remoting.adapters.JavaAdapter"&nbsp;&nbsp;&nbsp; <br />
&nbsp; <br />
default="true"/&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;/adapters&gt;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;default-channels&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;channel ref="my-amf"/&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;/default-channels&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;destination id="firstJavaFlex"&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;properties&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;source&gt;com.java.flex.FirstJavaFlex&lt;/source&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/properties&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;/destination&gt;&nbsp; <br />
&lt;/service&gt;&nbsp; <br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;service id="remoting-service" <br />
&nbsp;&nbsp;&nbsp; class="flex.messaging.services.RemotingService"&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;adapters&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;adapter-definition id="java-object" </p>
<p>class="flex.messaging.services.remoting.adapters.JavaAdapter" </p>
<p>default="true"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/adapters&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;default-channels&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;channel ref="my-amf"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/default-channels&gt;<br />
&nbsp;&lt;destination id="firstJavaFlex"&gt;<br />
&nbsp;&nbsp;&lt;properties&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;source&gt;com.java.flex.FirstJavaFlex&lt;/source&gt;<br />
&nbsp;&nbsp;&lt;/properties&gt;<br />
&nbsp;&lt;/destination&gt;<br />
&lt;/service&gt;<br />
&nbsp;</p>
<p><br />
接下来修改FirstJavaFlex.mxml，代码如下：</p>
<p>view plaincopy to clipboardprint?<br />
&lt;?xml version="1.0" encoding="utf-8"?&gt;&nbsp; <br />
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;mx:Script&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--[CDATA[&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; import mx.rpc.events.FaultEvent;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; import mx.controls.Alert;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; import mx.rpc.events.ResultEvent;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public function callJava():void {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; remoteHello.dd(myName.text);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; remoteHello.addEventListener(ResultEvent.RESULT,getRomoteHelloRes);&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private function getRomoteHelloRes(e: ResultEvent):void{&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Alert.show(e.result.toString());&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private function error(e:FaultEvent):void {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eerrorMsg.text=e.message.toString();&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]]--&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;/mx:Script&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;mx:RemoteObject destination="helloJavaFlex" id="remoteHello" fault="error(event)"&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;/mx:RemoteObject&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;mx:Button x="338" y="103" label="call java" click="callJava()"/&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;mx:TextInput x="155" y="103" id="myName"/&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;mx:Text x="78" y="105" text="your name:&nbsp;&nbsp; <br />
" height="20" width="74"/&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;mx:Text x="56" y="174" text="error message:" height="20" width="96"/&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;mx:TextArea id="errorMsg" width="256" height="200" x="155" y="173"&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;/mx:TextArea&gt;&nbsp; <br />
&lt;/mx:Application&gt;&nbsp; <br />
&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />
&lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"&gt;<br />
&nbsp;&lt;mx:Script&gt;<br />
&nbsp;&nbsp;&lt;!--[CDATA[<br />
&nbsp;&nbsp;&nbsp;import mx.rpc.events.FaultEvent;<br />
&nbsp;&nbsp;&nbsp;import mx.controls.Alert;<br />
&nbsp;&nbsp;&nbsp;import mx.rpc.events.ResultEvent;<br />
&nbsp;&nbsp;&nbsp;public function callJava():void {<br />
&nbsp;&nbsp;&nbsp;&nbsp;remoteHello.dd(myName.text);<br />
&nbsp;&nbsp;&nbsp;&nbsp;remoteHello.addEventListener(ResultEvent.RESULT,getRomoteHelloRes);<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;private function getRomoteHelloRes(e: ResultEvent):void{<br />
&nbsp;&nbsp;&nbsp;&nbsp;Alert.show(e.result.toString());<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;private function error(e:FaultEvent):void {<br />
&nbsp;&nbsp;&nbsp;&nbsp;errorMsg.text=e.message.toString();<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;]]--&gt;<br />
&nbsp;&lt;/mx:Script&gt;<br />
&nbsp;&lt;mx:RemoteObject destination="helloJavaFlex" id="remoteHello" fault="error(event)"&gt;<br />
&nbsp;&nbsp;<br />
&nbsp;&lt;/mx:RemoteObject&gt;<br />
&nbsp;&lt;mx:Button x="338" y="103" label="call java" click="callJava()"/&gt;<br />
&nbsp;&lt;mx:TextInput x="155" y="103" id="myName"/&gt;<br />
&nbsp;&lt;mx:Text x="78" y="105" text="your name:<br />
" height="20" width="74"/&gt;<br />
&nbsp;&lt;mx:Text x="56" y="174" text="error message:" height="20" width="96"/&gt;<br />
&nbsp;&lt;mx:TextArea id="errorMsg" width="256" height="200" x="155" y="173"&gt;<br />
&nbsp;&nbsp;<br />
&nbsp;&lt;/mx:TextArea&gt;<br />
&lt;/mx:Application&gt;<br />
&nbsp;</p>
<p>最后界面是这样的，如下图： </p>
<p>&nbsp;<img border="0" alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zk_2000/EntryImages/20091103/newProject3.JPG" width="469" height="336" /></p>
<p><br />
简单解释一下：</p>
<p>界面上有一个TextInput用来输入调用远程java类的参数。TextArea用来显示调用不成功的错语信息。Button的click事件用来触发调用远程java方法。还有一个在界面上不显示的RemoteObject对象是用来注册远程java目标的。</p>
<p>好了运行一下吧。</p>
<p>右键WebContent目录中的FirstJavaFlex.html文件选择Run as-&gt;Run on Server.看一下运行结果吧。如下图：</p>
<p>&nbsp;<img border="0" alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zk_2000/EntryImages/20091103/newProject5.JPG" width="1024" height="768" /></p>
<p>点击一下call java 按钮，看什么什么情况？如下图：</p>
<p>&nbsp;<img border="0" alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zk_2000/EntryImages/20091103/newProject6.JPG" width="1024" height="737" /></p>
<p>恭喜你成功了！</p>
<p>这个例子很简单，但因为不熟，我也是调了好久才成功。容易出错的地址就好个Context的问题了。当然也可以在RemoteObject中明确声明EndPoint属性，建议使用相对路径。</p>
<p>&lt;mx:RemoteObject destination="firstJavaFlex" id="remoteHello" fault="error(event)" endpoint="messagebroker/amf"/&gt;</p>
<p>就写到这吧，下一篇准备写写在真实开发中会用到的与spring结合的使用。</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/zk_2000/archive/2009/11/02/4759007.aspx</p>
<img border="0" alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/zk_2000/EntryImages/20091103/newProject3.JPG" width="469" height="336" />
 <img src ="http://www.blogjava.net/relax/aggbug/301812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2009-11-10 13:12 <a href="http://www.blogjava.net/relax/archive/2009/11/10/301812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse3.5下载后无法正常启动的研究与解决</title><link>http://www.blogjava.net/relax/archive/2009/09/27/296608.html</link><dc:creator>轻松</dc:creator><author>轻松</author><pubDate>Sun, 27 Sep 2009 03:11:00 GMT</pubDate><guid>http://www.blogjava.net/relax/archive/2009/09/27/296608.html</guid><wfw:comment>http://www.blogjava.net/relax/comments/296608.html</wfw:comment><comments>http://www.blogjava.net/relax/archive/2009/09/27/296608.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/relax/comments/commentRss/296608.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/relax/services/trackbacks/296608.html</trackback:ping><description><![CDATA[eclipse 3.5.1已经新鲜出炉了。可上下载了之后发现无法启动报错如下图<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/relax/eclipse-err.JPG" /><br />
进行一翻测试后发现将eclipse.ini中的最后一行的-Xmx512m改成-Xmx454m就可以正常启动（455就会报错哦，我可是一个数一个数试出来的）<br />
再又将所有其它软件全关闭一一测试后发现，刚下载不能用的问题是360安全卫士搞的鬼，如果将360安全卫士的木马防火墙和网页防火墙关掉，-Xmx512m时是可以正常启动的。<br />
我已经在360的论坛上报告这个BUG了。<br />
后来又经过一翻测试发现<br />
正常情况下-Xmx参数也只能最多设到Xmx912m设成Xmx913m也会报错的。这个还没找到是什么原因，当然也许是我机器是这样，还没有换机器测试。如果哪位看到文章测试有其它结果希望能给我回复。谢谢！<br />
<br />
总结：<br />
eclipse3.5.1如果不想关闭360安全卫士木马和网页防火墙的情况下，可以将-Xmx设成454m,这样能使eclipse使用更多的内存。<br />
如果关闭的关闭360安全卫士木马和网页防火墙的情况下，可以将-Xmx设成912m这时，这是我机器能用的最大值了，不知其它机器什么情况。
  <img src ="http://www.blogjava.net/relax/aggbug/296608.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/relax/" target="_blank">轻松</a> 2009-09-27 11:11 <a href="http://www.blogjava.net/relax/archive/2009/09/27/296608.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>