<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FineReport报表官网—专业Web报表软件 &#187; 报表安装部署</title>
	<atom:link href="http://www.finereport.com/category/knowledge/install/feed" rel="self" type="application/rss+xml" />
	<link>http://www.finereport.com</link>
	<description>一款高效易用的类Excel、纯Java报表工具，集数据展示(报表)、数据查询(参数)和数据录入(填报)于一身，是制作复杂中式报表的首选商业报表软件。</description>
	<lastBuildDate>Wed, 11 Jan 2012 13:49:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>FineReport报表服务器常用属性设置</title>
		<link>http://www.finereport.com/knowledge/install/server-setting.html</link>
		<comments>http://www.finereport.com/knowledge/install/server-setting.html#comments</comments>
		<pubDate>Tue, 19 Jul 2011 11:09:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表安装部署]]></category>
		<category><![CDATA[报表]]></category>
		<category><![CDATA[报表服务器]]></category>
		<category><![CDATA[报表软件]]></category>
		<category><![CDATA[报表部署]]></category>
		<category><![CDATA[报表集成]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/install/finereport%e6%8a%a5%e8%a1%a8%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%b8%b8%e7%94%a8%e5%b1%9e%e6%80%a7%e8%ae%be%e7%bd%ae.html</guid>
		<description><![CDATA[新升级的web报表软件FineReport6.5.4的服务器的属性配置方面跟之前有很大的不同，下面便来看看FineReport报表服务器常用属性配置。 1. 基本设置 报表服务器基本信息设置中是一些常用信息，在对应的编辑框后都有简单的说明，帮助完成设置，如下图效果： 2. 打印设置 FineReport报表软件支持APPLET打印、PDF打印、FLASH打印等方式，打印设置里面需要激活打印机，管理平台这边自动加载服务器可用的打印机，激活他们，这样在客户端的报表打印选项里便可以选到它们，各打印方式是否需要打印窗口，可参考静默打印文档。 3. 缓存设置 缓存设置分为数据集缓存和模板缓存，数据集缓存是相同数据集再次访问时直接从缓存下来的数据读取，从而减少取数时间，提高性能，数据集缓存设置可参数数据集缓存与共享文档； 模板缓存是再次访问该模板时直接从缓存中读取而不需要从服务器端重新读取模板以此来减小服务器的压力以及提高报表的访问速度，具体原理和设置可参考模板结果缓存与共享文档。]]></description>
			<content:encoded><![CDATA[<p>新升级的<a href="http://www.finereport.com" title="web报表软件">web报表软件</a>FineReport6.5.4的服务器的属性配置方面跟之前有很大的不同，下面便来看看FineReport报表服务器常用属性配置。<br />
1. 基本设置<br />
报表服务器基本信息设置中是一些常用信息，在对应的编辑框后都有简单的说明，帮助完成设置，如下图效果：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/server-setting1.png" title="报表服务器基本设置"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/server-setting1.png" alt="报表服务器基本设置" class="centered"></a><span id="more-2157"></span><br />
2. 打印设置<br />
FineReport<a href="http://www.finereport.com/products" title="web报表软件">报表软件</a>支持APPLET打印、PDF打印、FLASH打印等方式，打印设置里面需要激活打印机，管理平台这边自动加载服务器可用的打印机，激活他们，这样在客户端的<a href="http://www.finereport.com/knowledge/aquire/bulkprint.html" title="报表打印">报表打印</a>选项里便可以选到它们，各打印方式是否需要打印窗口，可参考静默打印文档。<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/server-setting2.png" title="报表服务器打印设置"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/server-setting2.png" alt="报表服务器打印设置" class="centered"></a><br />
3. 缓存设置<br />
缓存设置分为数据集缓存和模板缓存，数据集缓存是相同数据集再次访问时直接从缓存下来的数据读取，从而减少取数时间，提高性能，数据集缓存设置可参数数据集缓存与共享文档；<br />
模板缓存是再次访问该模板时直接从缓存中读取而不需要从服务器端重新读取模板以此来减小服务器的压力以及提高报表的访问速度，具体原理和设置可参考模板结果缓存与共享文档。<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/server-setting3.png" title="报表服务器缓存设置"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/server-setting3.png" alt="报表服务器缓存设置" class="centered"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/install/server-setting.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FineReport报表工具自定义出错页面</title>
		<link>http://www.finereport.com/knowledge/install/custom-error.html</link>
		<comments>http://www.finereport.com/knowledge/install/custom-error.html#comments</comments>
		<pubDate>Mon, 09 May 2011 12:26:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表安装部署]]></category>
		<category><![CDATA[报表]]></category>
		<category><![CDATA[报表工具]]></category>
		<category><![CDATA[报表部署]]></category>
		<category><![CDATA[报表集成]]></category>
		<category><![CDATA[自定义报表]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/install/finereport%e6%8a%a5%e8%a1%a8%e5%b7%a5%e5%85%b7%e8%87%aa%e5%ae%9a%e4%b9%89%e5%87%ba%e9%94%99%e9%a1%b5%e9%9d%a2.html</guid>
		<description><![CDATA[一些报表用户可能会觉得FineReport报表工具自带的抛错页面显示的信息太多，感觉不是很友好，页面不是很美观，色调和整个应用的色调可能不一致，他们希望的抛错页面只是简单的提示一下出错信息，或者需要跟项目有个统一的出错页面，那么就可以根据需要自定义一个出错页面error.html，显示报错信息。 以下分别为FineReport报表系统自带的抛错页面和自定义抛错页面。 系统自带的抛错页面如下： 自定义的抛错页面如下： 一 FineReport报表工具自定义出错页面的实现步骤 FineReport报表工具自定义的出错页面直接放在Web应用下，比如WebReport下面放了error.html ，那么在服务器&#124;服务器配置&#124;出错页面定义的模板路径中填写/error.html就可以了，同样出错页面也可以指向客户自己系统的抛错页面，如http://www.xxx.com/error.jsp等。（注：若调用自己系统的页面则必须加上http://） 或者也可以在%FR_HOME%\WebReport\WEB-INF\resources\config.xml中的ErrorHandlertemplate=”"代码对出错页面进行添加和修改。 error.html设置的样式如下： 报错页面显示图片xiaolian.jpg同样放到WebReport目录下面，而且可以获取到提示错误信息${message}。 二 参数说明 在使用自定义模板的时候也可以调用系统错误页面的参数，下面简单的列出参数以及说明 参数 说明 message 提示错误信息 charset 设置服务器的编码 exception 错误异常堆栈信息 注：直接在页面中写${message}和${exception}即可调用。]]></description>
			<content:encoded><![CDATA[<p>一些报表用户可能会觉得FineReport<a href="http://www.finereport.com/knowledge" title="报表工具">报表工具</a>自带的抛错页面显示的信息太多，感觉不是很友好，页面不是很美观，色调和整个应用的色调可能不一致，他们希望的抛错页面只是简单的提示一下出错信息，或者需要跟项目有个统一的出错页面，那么就可以根据需要自定义一个出错页面error.html，显示报错信息<span id="more-2148"></span>。<br />
以下分别为FineReport<a href="http://www.finereport.com" title="报表系统">报表系统</a>自带的抛错页面和自定义抛错页面。<br />
<b>系统自带的抛错页面如下：</b><br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/custom-error1.jpg" title="报表系统默认出错页面"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/custom-error1.jpg" alt="报表系统默认出错页面" class="centered"></a><br />
<b>自定义的抛错页面如下：</b><br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/custom-error2.png" title="报表工具自定义出错页面"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/custom-error2.png" alt="报表工具自定义出错页面" class="centered"></a><br />
<b>一 FineReport报表工具自定义出错页面的实现步骤</b><br />
FineReport<a href="http://www.finereport.com/knowledge" title="报表工具">报表工具</a>自定义的出错页面直接放在Web应用下，比如WebReport下面放了error.html ，那么在<b>服务器|服务器配置|出错页面定义</b>的模板路径中填写/error.html就可以了，同样出错页面也可以指向客户自己系统的抛错页面，如<b>http://www.xxx.com/error.jsp</b>等。（注：若调用自己系统的页面则必须加上http://）<br />
或者也可以在<b>%FR_HOME%\WebReport\WEB-INF\resources\config.xml中的ErrorHandlertemplate=”"</b>代码对出错页面进行添加和修改。<br />
error.html设置的样式如下：<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/custom-error3.ipg" title="报表工具自定义出错页面"><img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/custom-error3.jpg" alt="报表工具自定义出错页面" class="centered"></a><br />
报错页面显示图片xiaolian.jpg同样放到WebReport目录下面，而且可以获取到提示错误信息${message}。<br />
<b>二 参数说明</b><br />
在使用自定义模板的时候也可以调用系统错误页面的参数，下面简单的列出参数以及说明</p>
<table>
<th>
<td>参数</td>
<td>说明</td>
</th>
<tr>
<td>message</td>
<td>提示错误信息</td>
</tr>
<tr>
<td>charset</td>
<td>设置服务器的编码</td>
</tr>
<tr>
<td>exception</td>
<td>错误异常堆栈信息</td>
</tr>
</table>
<p><b>注：直接在页面中写${message}和${exception}即可调用。</b></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/install/custom-error.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用FineReport报表工具实现iframe框架自适应报表高度</title>
		<link>http://www.finereport.com/knowledge/install/iframe.html</link>
		<comments>http://www.finereport.com/knowledge/install/iframe.html#comments</comments>
		<pubDate>Fri, 14 Jan 2011 08:48:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表安装部署]]></category>
		<category><![CDATA[报表集成]]></category>

		<guid isPermaLink="false">http://www.finereport.com/knowledge/install/%e7%94%a8finereport%e6%8a%a5%e8%a1%a8%e5%b7%a5%e5%85%b7%e5%ae%9e%e7%8e%b0iframe%e6%a1%86%e6%9e%b6%e8%87%aa%e9%80%82%e5%ba%94%e6%8a%a5%e8%a1%a8%e9%ab%98%e5%ba%a6.html</guid>
		<description><![CDATA[将报表集成至Web页面中时，报表往往只是作为页面的某一部分嵌入在一个框架中如iframe中显示出来。由于报表每页数据是不定的，在最后一页可能只有几条数据，此时iframe框架将留有大片的空白，造成空间的浪费也使得界面不美观。这个时候我们就会希望，要是iframe框架大小能够根据报表页面的内容自动调整高度或宽度，就像下面的效果。 最后一页记录数较少，此时iframe框架高度变小 像这样的页面如何写呢？请看下面完整的页面代码： 1. 页面auto.html完整代码 // 由于gotoNextPage()等方法调用后，后台服务器返回结果需要一定的时间， 而我们需要获得返回结果中的行 // 因此添加监听，contentPane.on("afterload",function(){})：当选择页 加载完毕后调用setframeHeight方法获取行数及高度从而调整框架大小 function afterload(){ var contentPane = document.getElementById('reportFrame').contentWindow .contentPane;contentPane.on("afterload",function(){ setframeHeight(); }); } function setframeHeight(){ var reportFrame = document.getElementById('reportFrame'); // 获得页面中的所有行 var tr = reportFrame.contentWindow.document.getElementsByTagName("tr"); // 由于报表页面还存在页边距，因此框架高度是大于所有行累计的高度的，这里 赋一个初始值以表示边距的大小 var height = 50; for(var i=0;i]]></description>
			<content:encoded><![CDATA[<p>将报表集成至Web页面中时，<a href="http://www.finereport.com" title="报表">报表</a>往往只是作为页面的某一部分嵌入在一个框架中如iframe中显示出来。由于报表每页数据是不定的，在最后一页可能只有几条数据，此时iframe框架将留有大片的空白，造成空间的浪费也使得界面不美观。这个时候我们就会希望，要是iframe框架大小能够根据报表页面的内容自动调整高度或宽度，就像下面的效果<span id="more-2133"></span>。<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iframe1.jpg" title="iframe框架自适应报表高度"><img class="centered" src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iframe1.jpg" alt="iframe框架自适应报表高度" /></a><br />
最后一页记录数较少，此时iframe框架高度变小<br />
<a href="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iframe2.jpg" title="iframe框架自适应报表高度"><img class="centered" src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iframe2.jpg" alt="iframe框架自适应报表高度" /></a><br />
像这样的页面如何写呢？请看下面完整的页面代码：</p>
<p>1. 页面auto.html完整代码</p>
<pre class="brush: plain;">
<xmp>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

</head>
<script type="text/javascript">
// 由于gotoNextPage()等方法调用后，后台服务器返回结果需要一定的时间，
而我们需要获得返回结果中的行
// 因此添加监听，contentPane.on("afterload",function(){})：当选择页
加载完毕后调用setframeHeight方法获取行数及高度从而调整框架大小
function afterload(){
var contentPane = document.getElementById('reportFrame').contentWindow
.contentPane;contentPane.on("afterload",function(){
setframeHeight();
});
}
function setframeHeight(){
var reportFrame = document.getElementById('reportFrame');
// 获得页面中的所有行
var tr = reportFrame.contentWindow.document.getElementsByTagName("tr");
// 由于报表页面还存在页边距，因此框架高度是大于所有行累计的高度的，这里
赋一个初始值以表示边距的大小
var height = 50;
for(var i=0;i
<tr.length;i++){
height = height + tr[i].offsetHeight;
}
reportFrame.height = height;
}     
</script>
<body> 
<div id="toolbar">
<input type="button" onclick="document.getElementById('reportFrame').
contentWindow.contentPane.gotoFirstPage();afterload();" value="首页"></input>
<input type="button" onclick="document.getElementById('reportFrame').
contentWindow.contentPane.gotoPreviousPage();afterload();" value="上一页"></input>
<input type="button" onclick="document.getElementById('reportFrame').
contentWindow.contentPane.gotoNextPage();afterload();" value="下一页"></input>
<input type="button" onclick="document.getElementById('reportFrame').
contentWindow.contentPane.gotoLastPage();afterload();" value="末页"></input>
</div>

<iframe id="reportFrame" src="/WebReport/ReportServer?reportlet=
/doc/Tutorial/Form/basic.cpt" width = 100% height = 80%></iframe>

页面其他部分

</body>
<html>
</xmp>
</pre>
<p>2. 实现原理</p>
<p>以上例子便实现了iframe框架自适应报表高度需求，主要思路如下</p>
<p>2.1 首先点击上一页、下一页等按钮</p>
<p>调用FineReport<a href="http://www.finereport.com/products/functions" title="报表工具">报表工具</a>封装好的js事件如gotoLastPage()，后台服务器将对应的结果返回给浏览器；</p>
<p>2.2 添加监听</p>
<p>我们需要获取服务器返回给浏览器的页面，因此需要添加一个监听看浏览器是否已经将结果加载完毕。添加监听的方法为contentPane.on("afterload",function(){})；</p>
<p>2.3 设置框架高度</p>
<p>一旦发现浏览器已经将结果加载完毕，我们便可以获取结果如最后一页数据有多少行，遍历每行获得高度并进行累计，将最终需要的高度(像素px为单位)赋给框架。</p>
<p>for(var i=0;i<tr.length;i++){</p>
<p>height = height + tr[i].offsetHeight;</p>
<p>}</p>
<p>reportFrame.height = height;</p>
<p>3. 效果查看</p>
<p>将代码保存至WebReport\auto.html，启动服务器，在浏览器中输入http://localhost:8079/WebReport/auto.html，便可以看到效果了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/install/iframe.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IIS集成——使用FineReport_IIS 安装包</title>
		<link>http://www.finereport.com/knowledge/install/iis_3.html</link>
		<comments>http://www.finereport.com/knowledge/install/iis_3.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 07:23:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表安装部署]]></category>
		<category><![CDATA[IIS服务器]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/install/iis%e9%9b%86%e6%88%90%e2%80%94%e2%80%94%e4%bd%bf%e7%94%a8finereport_iis-%e5%ae%89%e8%a3%85%e5%8c%85.html</guid>
		<description><![CDATA[IIS简介： Internet Information Server的缩写为（IIS）是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页，并且有ASP（Active Server Pages）、JAVA、VBscript产生页面，有着一些扩展功能。IIS支持一些有趣的东西，像有编辑环境的界面（FRONTPAGE）、有全文检索功能的（INDEX SERVER）、有多媒体功能的（NET SHOW）。ASP.net与IIS服务器集成后就可以发布相应的ASP网站。 IIS集成： 我们通过两种服务器的整合就可以将FineReport报表工程与.net工程进行无缝集成。以FineReport报表工具自带的工程WebReport为例，先将WebReport工程与可以解析jsp,servlet的服务器集成（例如WebSphere,Tomcat等服务器），然后对服务器与可以解析asp的服务器（例如IIS服务器）进行整合。 FineReport_IIS安装包： FineReport_IIS安装包是FineReport公司专门制作的能直接与已有的IIS服务器进行无缝集成的软件安装包，在安装设计器软件的同时，完成与IIS服务器集成的配置工作，免去诸多烦琐的操作。 使用FineReport_IIS安装包安装软件并与IIS集成： 1. 确认已装有IIS：一般Win2003服务器为IIS6.0，WinXP个人机为IIS5.1。若计算机中还未装有IIS服务器，则可到官方网站下载并安装。 2. 使用FineReport_IIS安装包安装软件 双击FineReport_IIS.exe，进行安装。软件的安装，与其他FineReport安装包相同，可按照需求选择安装路径进行安装。IIS集成，安装完软件后，会弹出如下对话框要求为IIS服务器添加筛选器，点击“是”： 安装完毕，重启计算机。 注：重启计算机的目的是为了重启IIS服务，也可选择“稍后重启”，不进行重启操作，此时打开控制面板&#124;管理工具&#124;服务找到IIS Admin Service服务，手动进行重启，效果相同。 3. 浏览模板： 安装完毕后，即可按照习惯的访问路径访问FineReport报表了。 在浏览器中输入： http://localhost/WebReport/ReportServer?reportlet=/demo/basic/post.cpt 即可看到如下页面：]]></description>
			<content:encoded><![CDATA[<p><b>IIS简介：</b></p>
<p>Internet Information Server的缩写为（IIS）是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页，并且有ASP（Active Server Pages）、JAVA、VBscript产生页面，有着一些扩展功能。IIS支持一些有趣的东西，像有编辑环境的界面（FRONTPAGE）、有全文检索功能的（INDEX SERVER）、有多媒体功能的（NET SHOW）。ASP.net与IIS服务器集成后就可以发布相应的ASP网站。</p>
<p><span id="more-2004"></span></p>
<p><b>IIS集成：</b></p>
<p>我们通过两种服务器的整合就可以将FineReport报表工程与.net工程进行无缝集成。以FineReport<a href="http://www.finereport.com/products/functions" title="报表工具">报表工具</a>自带的工程WebReport为例，先将WebReport工程与可以解析jsp,servlet的服务器集成（例如WebSphere,Tomcat等服务器），然后对服务器与可以解析asp的服务器（例如IIS服务器）进行整合。</p>
<p><b>FineReport_IIS安装包：</b></p>
<p>FineReport_IIS安装包是FineReport公司专门制作的能直接与已有的IIS服务器进行无缝集成的软件安装包，在安装设计器软件的同时，完成与IIS服务器集成的配置工作，免去诸多烦琐的操作。</p>
<p><b>使用FineReport_IIS安装包安装软件并与IIS集成：</b></p>
<p>1.	确认已装有IIS：一般Win2003服务器为IIS6.0，WinXP个人机为IIS5.1。若计算机中还未装有IIS服务器，则可到官方网站下载并安装。</p>
<p>2.	使用FineReport_IIS安装包安装软件</p>
<p>双击FineReport_IIS.exe，进行安装。软件的安装，与其他FineReport安装包相同，可按照需求选择安装路径进行安装。IIS集成，安装完软件后，会弹出如下对话框要求为IIS服务器添加筛选器，点击“是”：<br />
<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iis_3_1.png" alt="添加筛选器"></p>
<p>安装完毕，重启计算机。</p>
<p>注：重启计算机的目的是为了重启IIS服务，也可选择“稍后重启”，不进行重启操作，此时打开控制面板|管理工具|服务找到IIS  Admin Service服务，手动进行重启，效果相同。</p>
<p>3.	浏览模板：<br />
安装完毕后，即可按照习惯的访问路径访问FineReport<a href="http://www.finereport.com" title="报表">报表</a>了。<br />
在浏览器中输入：<br />
<em>http://localhost/WebReport/ReportServer?reportlet=/demo/basic/post.cpt</em><br />
即可看到如下页面：<br />
<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iis_3_2.jpg" alt="浏览报表模版"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/install/iis_3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IIS集成配置</title>
		<link>http://www.finereport.com/knowledge/install/iis_2.html</link>
		<comments>http://www.finereport.com/knowledge/install/iis_2.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 07:22:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表安装部署]]></category>
		<category><![CDATA[IIS服务器]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/install/iis%e9%9b%86%e6%88%90%e9%85%8d%e7%bd%ae.html</guid>
		<description><![CDATA[IIS简介： Internet Information Server的缩写为（IIS）是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页，并且有ASP（Active Server Pages）、JAVA、VBscript产生页面，有着一些扩展功能。IIS支持一些有趣的东西，像有编辑环境的界面（FRONTPAGE）、有全文检索功能的（INDEX SERVER）、有多媒体功能的（NET SHOW）。ASP.net与IIS服务器集成后就可以发布相应的ASP网站。 IIS集成： 我们通过两种服务器的整合就可以将FineReport报表工程与.net工程进行无缝集成。以FineReport报表工具自带的工程WebReport为例，先将WebReport工程与可以解析jsp,servlet的服务器集成（例如WebSphere,Tomcat等服务器），然后对服务器与可以解析asp的服务器（例如IIS服务器）进行整合。 IIS集成配置： 1. 复制插件：将FRFilter文件夹拷贝至IIS所在的服务器上的任意目录，如C:\FRFilter 。 该文件夹中包涵IsapiRewrite4.dll ，IsapiRewrite4.ini两个文件。前者为ISAPI筛选器。 2. 修改IsapiRewrite4.ini配置设置：打开配置文件，修改应用服务器端口，如下图： 3. IIS服务器添加筛选器：打开控制面板&#124;管理工具-Internet信息服务，右击网站，选择属性，添加一ISAPI筛选器，筛选器名称任意，如命名为FRFilter，可执行文件选择IsapiRewrite4.dll，如下图： 4. 配置完成，重启IIS服务器： 5. 启动应用服务器如tomcat： 6. 浏览报表：在浏览其中输入地址如: http://localhost/WebReport/ReportServer/reportlet=/com/doc/cross.cpt 即可访问报表。]]></description>
			<content:encoded><![CDATA[<p><b>IIS简介：</b></p>
<p>Internet Information Server的缩写为（IIS）是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页，并且有ASP（Active Server Pages）、JAVA、VBscript产生页面，有着一些扩展功能。IIS支持一些有趣的东西，像有编辑环境的界面（FRONTPAGE）、有全文检索功能的（INDEX SERVER）、有多媒体功能的（NET SHOW）。ASP.net与IIS服务器集成后就可以发布相应的ASP网站。</p>
<p><span id="more-2003"></span></p>
<p><b>IIS集成：</b></p>
<p>我们通过两种服务器的整合就可以将FineReport报表工程与.net工程进行无缝集成。以FineReport<a href="http://www.finereport.com/products/functions" title="报表工具">报表工具</a>自带的工程WebReport为例，先将WebReport工程与可以解析jsp,servlet的服务器集成（例如WebSphere,Tomcat等服务器），然后对服务器与可以解析asp的服务器（例如IIS服务器）进行整合。</p>
<p><b>IIS集成配置：</b></p>
<p>1.	复制插件：将FRFilter文件夹拷贝至IIS所在的服务器上的任意目录，如C:\FRFilter 。 该文件夹中包涵IsapiRewrite4.dll ，IsapiRewrite4.ini两个文件。前者为ISAPI筛选器。</p>
<p>2.	修改IsapiRewrite4.ini配置设置：打开配置文件，修改应用服务器端口，如下图：<br />
<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iis_2_1.png" alt="修改应用服务器端口"></p>
<p>3.	IIS服务器添加筛选器：打开控制面板|管理工具-Internet信息服务，右击网站，选择属性，添加一ISAPI筛选器，筛选器名称任意，如命名为FRFilter，可执行文件选择IsapiRewrite4.dll，如下图：<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iis_2_2.jpg" alt="iis服务器添加筛选器"></p>
<p>4.	配置完成，重启IIS服务器：</p>
<p>5.	启动应用服务器如tomcat：</p>
<p>6.	浏览报表：在浏览其中输入地址如:<br />
<em>http://localhost/WebReport/ReportServer/reportlet=/com/doc/cross.cpt</em> 即可访问报表。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/install/iis_2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IIS与Tomcat服务器集成</title>
		<link>http://www.finereport.com/knowledge/install/iis_1.html</link>
		<comments>http://www.finereport.com/knowledge/install/iis_1.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 07:19:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表安装部署]]></category>
		<category><![CDATA[IIS服务器]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/install/iis%e6%9c%8d%e5%8a%a1%e5%99%a8%e9%9b%86%e6%88%90.html</guid>
		<description><![CDATA[IIS简介： Internet Information Server的缩写为（IIS）是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页，并且有ASP（Active Server Pages）、JAVA、VBscript产生页面，有着一些扩展功能。IIS支持一些有趣的东西，像有编辑环境的界面（FRONTPAGE）、有全文检索功能的（INDEX SERVER）、有多媒体功能的（NET SHOW）。ASP.net与IIS服务器集成后就可以发布相应的ASP网站。 IIS5.1与IIS6.0的区别： 一般IIS5.1是适用于Winxp的，而IIS6.0适用于Win2003，如果个人做测试用或有其他需求可以选择IIS5.1，如果是作为服务器用的话，就用IIS6.0。 IIS集成： 我们通过两种服务器的整合就可以将FineReport报表工程与.net工程进行无缝集成。以FineReport报表工具自带的工程WebReport为例，先将WebReport工程与可以解析jsp,servlet的服务器集成（例如WebSphere,Tomcat等服务器），然后对服务器与可以解析asp的服务器（例如IIS服务器）进行整合。 win2003 32位系统上的Tomcat和IIS6集成： Tomcat用来和FineReport报表工具的工程WebReport集成，IIS6（Internet Informatica Server）是可以发布解析ASP等网页的服务器。这里我们只说明部署好应用工程的Tomcat如何与IIS服务器进行整合的，有关如何在Tomcat部署工程可以参考系统集成——服务器中的Tomcat服务器章节，IIS6可以参考微软官方网站相关内容。 1.下载插件isapi_redirector2.dll，插件的作用是可以使Tomcat和FineReport报表进行通讯，插件的下载地址http://archive.apache.org/dist/tomcat/tomcat-connectors/jk2/binaries/win32/。解压缩得到isapi_redirector2.dll，创建文件夹C:/jakarta（创建路径任意）,放置isapi_redirector2.dll。 2.使用记事本创建3个文件，分别为workers2.properties、jk2.properties和jakarta.reg（这个文件的名字可以随便起，但要以“.reg”为后缀名）。 这3个文件的内容分别如下： 注：如果8009端口没被占用，请不要改变端口号。localhost可以改成域名，如果改变需要对相应文件进行设置，这里不做讨论。 以上workers2.properties、jk2.properties两个文件放置到%Tomcat_Home%/conf文件夹中。 3.jakarta.reg可放于任意目录下，在这为便于管理与isapi_redirector2.dll插件放于同一目录下，即c:/jakarta。 双击jakarta.reg文件将内容导入注册表。 4.应用isapi_redirector2.dll通讯插件。 打开管理工具&#124;Internet信息服务(IIS)管理器，右击下拉树中的默认网站，点击属性，选择ISAPI筛选器，添加筛选器，名称为jakarta，可执行文件选择C:\jakstarta\isapi_redirector2.dll ，点击确定。  右击默认网站，新建“虚拟目录”，别名填jakarta，下一步，路径选为你的isapi_redirector2.dll存放的目录，即C:/jakarta，在下一步中的权限记得把“执行”打勾。 注：如果刚建立的jakarta筛选器的状态的图标不是,请注意上述配置过程有没有错误和遗漏。 5.选择网站下面Web服务扩展，添加一个新的Web服务扩展，扩展名取为tomcat（扩展名可以任意取），要求的文件选择C:\jakarta\isapi_redirector2.dll。选择设置扩展状态，确定。如图。(windows2003系统中需要设置这一步) 6.重启Tomcat和IIS，打开浏览器，输入http://localhost/WebReport/ReportServer?reportlet=/demo/basic/post.cp t ，如果看到下图所示，说明配置成功。 注：服务器访问的默认路径为Tomcat服务器设置的默认路径，可对Tomcat服务器进行设置改变默认路径。另假如要将报表工程和已存在的工程进行整合，请将工程文件放置一起，并设置tomcat和iis服务器的默认路径。]]></description>
			<content:encoded><![CDATA[<p><b>IIS简介：</b></p>
<p>Internet Information Server的缩写为（IIS）是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页，并且有ASP（Active Server Pages）、JAVA、VBscript产生页面，有着一些扩展功能。IIS支持一些有趣的东西，像有编辑环境的界面（FRONTPAGE）、有全文检索功能的（INDEX SERVER）、有多媒体功能的（NET SHOW）。ASP.net与IIS服务器集成后就可以发布相应的ASP网站。</p>
<p><span id="more-2002"></span></p>
<p><b>IIS5.1与IIS6.0的区别：</b></p>
<p>一般IIS5.1是适用于Winxp的，而IIS6.0适用于Win2003，如果个人做测试用或有其他需求可以选择IIS5.1，如果是作为服务器用的话，就用IIS6.0。</p>
<p><b>IIS集成：</b></p>
<p>我们通过两种服务器的整合就可以将FineReport报表工程与.net工程进行无缝集成。以FineReport<a href="http://www.finereport.com/products/functions" title="报表工具">报表工具</a>自带的工程WebReport为例，先将WebReport工程与可以解析jsp,servlet的服务器集成（例如WebSphere,Tomcat等服务器），然后对服务器与可以解析asp的服务器（例如IIS服务器）进行整合。</p>
<p><b>win2003 32位系统上的Tomcat和IIS6集成：</b></p>
<p>Tomcat用来和FineReport报表工具的工程WebReport集成，IIS6（Internet Informatica Server）是可以发布解析ASP等网页的服务器。这里我们只说明部署好应用工程的Tomcat如何与IIS服务器进行整合的，有关如何在Tomcat部署工程可以参考系统集成——服务器中的Tomcat服务器章节，IIS6可以参考微软官方网站相关内容。</p>
<p>1.下载插件isapi_redirector2.dll，插件的作用是可以使Tomcat和FineReport报表进行通讯，插件的下载地址http://archive.apache.org/dist/tomcat/tomcat-connectors/jk2/binaries/win32/。解压缩得到isapi_redirector2.dll，创建文件夹C:/jakarta（创建路径任意）,放置isapi_redirector2.dll。 </p>
<p>2.使用记事本创建3个文件，分别为workers2.properties、jk2.properties和jakarta.reg（这个文件的名字可以随便起，但要以“.reg”为后缀名）。 这3个文件的内容分别如下： <img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iis_1_1.png" alt="报表文件"></p>
<p>注：如果8009端口没被占用，请不要改变端口号。localhost可以改成域名，如果改变需要对相应文件进行设置，这里不做讨论。<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iis_1_2.png" alt="报表文件"></p>
<p>以上workers2.properties、jk2.properties两个文件放置到%Tomcat_Home%/conf文件夹中。<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iis_1_3.png" alt="报表文件"></p>
<p>3.jakarta.reg可放于任意目录下，在这为便于管理与isapi_redirector2.dll插件放于同一目录下，即c:/jakarta。 双击jakarta.reg文件将内容导入注册表。</p>
<p>4.应用isapi_redirector2.dll通讯插件。<br />
打开<b>管理工具|Internet信息服务(IIS)管理器</b>，右击下拉树中的默认网站，点击属性，选择ISAPI筛选器，添加筛选器，名称为jakarta，可执行文件选择C:\jakstarta\isapi_redirector2.dll ，点击确定。<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iis_1_4.png" alt="添加编辑筛选器"><br />
	右击默认网站，新建“虚拟目录”，别名填jakarta，下一步，路径选为你的isapi_redirector2.dll存放的目录，即C:/jakarta，在下一步中的权限记得把“执行”打勾。<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iis_1_5.png" alt="创建虚拟目录"></p>
<p>注：如果刚建立的jakarta筛选器的状态的图标不是<img src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iis_1_6.png" alt="状态">,请注意上述配置过程有没有错误和遗漏。 </p>
<p>5.选择网站下面Web服务扩展，添加一个新的Web服务扩展，扩展名取为tomcat（扩展名可以任意取），要求的文件选择C:\jakarta\isapi_redirector2.dll。选择设置扩展状态，确定。如图。(windows2003系统中需要设置这一步) <img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iis_1_7.png" alt="添加新的web扩展"></p>
<p>6.重启Tomcat和IIS，打开浏览器，输入http://localhost/WebReport/ReportServer?reportlet=/demo/basic/post.cp t ，如果看到下图所示，说明配置成功。<img class="centered"  src="http://www.finereport.com/CN/wordpress/wp-content/uploads/images/iis_1_8.png" alt="配置成功"></p>
<p>注：服务器访问的默认路径为Tomcat服务器设置的默认路径，可对Tomcat服务器进行设置改变默认路径。另假如要将报表工程和已存在的工程进行整合，请将工程文件放置一起，并设置tomcat和iis服务器的默认路径。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/install/iis_1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下配置FineReport报表</title>
		<link>http://www.finereport.com/knowledge/install/linux.html</link>
		<comments>http://www.finereport.com/knowledge/install/linux.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 07:08:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表安装部署]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/install/linux%e4%b8%8b%e9%85%8d%e7%bd%aefinereport%e6%8a%a5%e8%a1%a8.html</guid>
		<description><![CDATA[前述 操作系统：linux 服务器：resin 报表应用：FineReport 操作步棸： 一：安装jdk 二：安装服务器，以resin为例 三：配置报表工程 一：安装jdk 1.首先在官网上下载jdk 例如jdkjdk1.6, 名称为 jdk-6u2-linux-i586-rpm.bin 2.通过ftp上传jdk-6u2-linux-i586-rpm.bin 3. 通过命令给所有的用户添加可执行的权限 chmod a+x jdk-6u2-linux-i586-rpm.bin a：All，即全部的用户，包含拥有者，所属群组以及其他用户 x：执行或切换权限，数字代号为&#8221;1&#8243;。 4. ./jdk-6u2-linux-i586-rpm.bin 会生成文件jdk-6u2-linux-i586-rpm 同样给所有的用户添加可执行权 安装程序 rpm -ivh jdk-6u2-linux-i586-rpm 接受协议，按enter即可 5. 最后设置path与classpath export JAVA_HOME=/usr/java/jdk1.6.0_02 6.执行命令 java -version 如果出现java version &#8220;1.6.0_02&#8243;表示安装成功 二．安装resin服务器 准备工作：在resin官网下载linux环境下的resin安装文件 1） 安装 JDK 上一步已经执行 2） 确定环境变量JAVA_HOME设置正确 上一步已经执行 3） 安装 单独运行： # tar zxvf [...]]]></description>
			<content:encoded><![CDATA[<p><b>前述</b><br />
操作系统：linux<br />
服务器：resin<br />
报表应用：FineReport<br />
操作步棸：<br />
一：安装jdk<br />
二：安装服务器，以resin为例<br />
三：配置报表工程</p>
<p><span id="more-2001"></span></p>
<p><b>一：安装jdk</b><br />
1.首先在官网上下载jdk 例如jdkjdk1.6,  名称为 jdk-6u2-linux-i586-rpm.bin<br />
2.通过ftp上传jdk-6u2-linux-i586-rpm.bin<br />
3. 通过命令给所有的用户添加可执行的权限<br />
    chmod a+x jdk-6u2-linux-i586-rpm.bin<br />
     a：All，即全部的用户，包含拥有者，所属群组以及其他用户<br />
    x：执行或切换权限，数字代号为&#8221;1&#8243;。<br />
4. ./jdk-6u2-linux-i586-rpm.bin<br />
     会生成文件jdk-6u2-linux-i586-rpm<br />
     同样给所有的用户添加可执行权<br />
    安装程序 rpm -ivh jdk-6u2-linux-i586-rpm<br />
     接受协议，按enter即可<br />
5. 最后设置path与classpath<br />
    export JAVA_HOME=/usr/java/jdk1.6.0_02<br />
6.执行命令  java -version<br />
   如果出现java version &#8220;1.6.0_02&#8243;表示安装成功</p>
<p><b>二．安装resin服务器</b><br />
准备工作：在resin官网下载linux环境下的resin安装文件<br />
1） 安装 JDK 上一步已经执行<br />
2） 确定环境变量JAVA_HOME设置正确 上一步已经执行<br />
3） 安装<br />
单独运行：<br />
# tar zxvf resin-3.0.4.tar.gz<br />
# mv resin03.0.6 /usr/local/resin<br />
#cd /usr/local/resin<br />
# ./configure<br />
# make<br />
# make install<br />
#cd bin<br />
#./httpd.sh start</p>
<p><b>三.配置报表工程</b><br />
安装好resin服务器后<br />
•把FineReport报表安装目录下的WebReport文件夹打包成zip 上传到ftp<br />
•在linux下通过访问ftp<br />
Cd到resin目录下的webapps文件夹<br />
ftp  ip地址<br />
转到zip包所在目录<br />
get WebReport.zip 到当前目录下<br />
exit 退出ftp<br />
在webapps文件夹下<br />
unzip WebReport.zip 把WebReport解压到webapps文件夹下<br />
•启动resin服务器<br />
Cd到resin的bin文件夹<br />
./httpd.sh<br />
  输入http://localhost:8080 测试服务器是否启动成功<br />
出现resin的欢迎界面说明启动成功<br />
  输入http://localhost:8080/WebReport/ReportServer?op=test 测试报表环境是否配置成功如出现报表界面则配置成功</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/install/linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FineReport6.5企业版Windows集群配置说明</title>
		<link>http://www.finereport.com/knowledge/install/deploy6_5.html</link>
		<comments>http://www.finereport.com/knowledge/install/deploy6_5.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 07:05:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表安装部署]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/install/finereport6-5%e4%bc%81%e4%b8%9a%e7%89%88windows%e9%9b%86%e7%be%a4%e9%85%8d%e7%bd%ae%e8%af%b4%e6%98%8e.html</guid>
		<description><![CDATA[前述： windows集群同J2EE的集群不同，因为它是操作系统自带的集群支持，它没有J2EE集群对java的web应用的良好支持，例如session复制以及session粘滞。所以对windows集群，需要特别配置一下，以此来支持集群的功能。 简单原理说明： Windows集群的均衡负载会根据情况，将外部请求分配给集群内的服务器处理。当一个会话（Session）在A服务器上产生并开始，产生了一部分会话信息将保存到A服务器的内存中。假如这次会话中的一次请求被windows集群的均衡负载调度器分配到了B服务器去处理，那么问题就产生了，B服务器中的内存中并没有这个会话的信息，那么就会报session timeout。 而我们的配置，会在集群的服务器间建立联系。当B服务器收到请求，发现这个请求的会话不是自己产生的，那么它会根据请求中的信息，判断出这个会话是由哪台服务器产生。接着它会将这个请求通过内网转发给相应的那台服务器去处理。这样相当于就实现了J2EE集群的会话粘滞的功能。简单的说，会话粘滞就是保持一个会话中的多次交互都由一台集群中的服务器处理。这样就不会再产生上述的问题。 前提： 集群的服务器间需要有内网间通信的支持。不同服务器上的报表应用必须是一致的。 配置步骤： 集群内的每台安装有报表应用的服务器都需要这样配置。 1. 关闭现在的报表服务。 2. 增加配置文件。 将配置包resource文件夹下的cluster.xml打开。看见如下内容： &#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; ?&#62; &#60;ClusterConfig useCluster=&#34;true&#34;&#62; //useCluster=”true”表示启用集群配置 &#60;ClusterService&#62; &#60;ServiceName&#62;A&#60;/ServiceName&#62; //给这台服务器取一个区别于其他机器的别名 &#60;ip&#62;192.168.0.1&#60;/ip&#62; //这台服务器在内网中的IP地址 &#60;port&#62;8080&#60;/port&#62; //报表应用的端口 &#60;WebAppName&#62;WebReport&#60;/WebAppName&#62; //报表应用的名称 &#60;/ClusterService&#62; &#60;ClusterService&#62; &#60;ServiceName&#62;B&#60;/ServiceName&#62; &#60;ip&#62;192.168.0.2&#60;/ip&#62; &#60;port&#62;8080&#60;/port&#62; &#60;WebAppName&#62;WebReport&#60;/WebAppName&#62; &#60;/ClusterService&#62; &#60;/ClusterConfig&#62; 这里的每个ClusterService都是集群中一台服务器的相关信息。配置好后，系统会根据自身的IP和端口号去匹配找到相应的信息。当然也可能会有一些原因导致系统无法正确的匹配找到。这时您可以设置isSelf属性来指定自身的属性。例如这个配置文件部署在A服务器下，那么ServiceName为A的那个ClusterService节点后加一个属性 isSelf=”true”，表示下这是本机的信息。如下所示： &#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; ?&#62; &#60;ClusterConfig useCluster=&#34;true&#34;&#62; &#60;ClusterService isSelf=&#34;true&#34;&#62; &#60;ServiceName&#62;A&#60;/ServiceName&#62; &#60;ip&#62;192.168.0.1&#60;/ip&#62; &#60;port&#62;8080&#60;/port&#62; &#60;WebAppName&#62;WebReport&#60;/WebAppName&#62; &#60;/ClusterService&#62; &#60;ClusterService&#62; [...]]]></description>
			<content:encoded><![CDATA[<p><b>前述：</b></p>
<p>windows集群同J2EE的集群不同，因为它是操作系统自带的集群支持，它没有J2EE集群对java的web应用的良好支持，例如session复制以及session粘滞。所以对windows集群，需要特别配置一下，以此来支持集群的功能。</p>
<p><b>简单原理说明：</b></p>
<p>Windows集群的均衡负载会根据情况，将外部请求分配给集群内的服务器处理。当一个会话（Session）在A服务器上产生并开始，产生了一部分会话信息将保存到A服务器的内存中。<span id="more-2000"></span>假如这次会话中的一次请求被windows集群的均衡负载调度器分配到了B服务器去处理，那么问题就产生了，B服务器中的内存中并没有这个会话的信息，那么就会报session timeout。</p>
<p>而我们的配置，会在集群的服务器间建立联系。当B服务器收到请求，发现这个请求的会话不是自己产生的，那么它会根据请求中的信息，判断出这个会话是由哪台服务器产生。接着它会将这个请求通过内网转发给相应的那台服务器去处理。这样相当于就实现了J2EE集群的会话粘滞的功能。简单的说，会话粘滞就是保持一个会话中的多次交互都由一台集群中的服务器处理。这样就不会再产生上述的问题。</p>
<p><b>前提：</b></p>
<p>集群的服务器间需要有内网间通信的支持。不同服务器上的报表应用必须是一致的。</p>
<p><b>配置步骤：</b></p>
<p>集群内的每台安装有报表应用的服务器都需要这样配置。</p>
<p>1.	关闭现在的报表服务。</p>
<p>2.	增加配置文件。</p>
<p>将配置包resource文件夹下的cluster.xml打开。看见如下内容：</p>
<pre class="brush: plain;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;ClusterConfig useCluster=&quot;true&quot;&gt;      //useCluster=”true”表示启用集群配置
	&lt;ClusterService&gt;
		&lt;ServiceName&gt;A&lt;/ServiceName&gt;  //给这台服务器取一个区别于其他机器的别名
		&lt;ip&gt;192.168.0.1&lt;/ip&gt;            //这台服务器在内网中的IP地址
		&lt;port&gt;8080&lt;/port&gt;              //报表应用的端口
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;  //报表应用的名称
	&lt;/ClusterService&gt;
	&lt;ClusterService&gt;
		&lt;ServiceName&gt;B&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.2&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
&lt;/ClusterConfig&gt;
</pre>
<p>这里的每个ClusterService都是集群中一台服务器的相关信息。配置好后，系统会根据自身的IP和端口号去匹配找到相应的信息。当然也可能会有一些原因导致系统无法正确的匹配找到。这时您可以设置isSelf属性来指定自身的属性。例如这个配置文件部署在A服务器下，那么ServiceName为A的那个ClusterService节点后加一个属性 isSelf=”true”，表示下这是本机的信息。如下所示：</p>
<pre class="brush: plain;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;ClusterConfig useCluster=&quot;true&quot;&gt;
	&lt;ClusterService  isSelf=&quot;true&quot;&gt;
		&lt;ServiceName&gt;A&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.1&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
	&lt;ClusterService&gt;
		&lt;ServiceName&gt;B&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.2&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
&lt;/ClusterConfig&gt;         //这个就是指定自身信息的A服务器相应的配置文件了
</pre>
<p>ServiceName是为一台服务器取的别名，只是为了区别标记一下。最好简单方便，如A、B、C或者A1、A2等。注意！不能是中文。</p>
<p>IP、PORT、和WebAppName上面的注释中有介绍。</p>
<p>IP是该台服务器内网中的IP，就是其它服务器能与之通信的IP。Port是报表应用的端口号，假如是部署在tomcat下，那么就是tomcat的端口号，默认是8080.例如我们的内置服务器是8079。WebAppName是报表应用的名称，我们默认的是WebReport。</p>
<p>简单的讲。如上面的那个例子。B服务器的信息如下。</p>
<pre class="brush: plain;">
&lt;ClusterService&gt;
	&lt;ServiceName&gt;B&lt;/ServiceName&gt;
	&lt;ip&gt;192.168.0.2&lt;/ip&gt;
	&lt;port&gt;8080&lt;/port&gt;
	&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
&lt;/ClusterService&gt;
</pre>
<p>那么正确的配置的结果，就是在A服务器上，假如有浏览器，浏览器中输入：</p>
<p>http://192.168.0.2:8080/WebReport/ReportServer?reportlet=xxx.cpt</p>
<p>就能访问到B服务器上的报表应用。这个url中的IP、端口号和web应用名称就是上面配置信息里面的。注：xxx.cpt只是举个例子。</p>
<p>那么综上说明，假如集群中多了一台C服务器，给它取个别名就叫C。内网IP是192.168.0.3。装了tomcat，端口默认是8080。报表应用名称也是默认是WebReport。那么服务器下的配置文件应该如下所示：</p>
<pre class="brush: plain;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;ClusterConfig useCluster=&quot;true&quot;&gt;
	&lt;ClusterService&gt;
		&lt;ServiceName&gt;A&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.1&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
	&lt;ClusterService&gt;
		&lt;ServiceName&gt;B&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.2&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
	&lt;ClusterService&gt;
		&lt;ServiceName&gt;C&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.3&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
&lt;/ClusterConfig&gt;
</pre>
<p>最后，请根据上面的格式，写好cluster.xml文件，并且将其拷贝到各服务器的报表应用下WEB-INF\resources文件夹下。当然，有isSelf属性指定的特定服务器的配置文件需要保存到相应的服务器路径下。注意：xml文件的保存格式是 utf-8 no Bom的格式。一般用写字板打开配置包下的cluster.xml文件，修改保存就可以。</p>
<p><b>3.	测试配置是否生效。</b></p>
<p>当集群中的服务器都已经按照上述步骤配置好，并且重新启动报表应用后。依次在各台服务器上做如下测试。例如，现在在A服务器下，先本机测试下报表能否访问，测一张简单的模板就行。能正常访问(ie浏览器可能需要将localhost或者127.0.0.1的本机地址添加到信任站点中才能显示页面)，接着在浏览器上输入：</p>
<p>http://localhost:8080/WebReport/ReportServer?op=cluster_test</p>
<p>上述url地址前面部分按情况，请换上相应报表应用的端口号和应用名称。然后假如本机设置正常就能看到如下的信息（以上述A、B两台服务器的配置文件举例）：</p>
<p>Cluster is start!<br />
SELF:<br />
ServiceName:A<br />
IP:192.168.0.1<br />
PORT:8080<br />
WebAppName:WebReport</p>
<p>Other Server List:<br />
NO1: ServiceName:B = 192.168.0.2:8080/WebReport – OK</p>
<p>这样说明，配置生效，A服务器能与B服务器间进行通信。再次查看下信息是否有误。那么相应的在B服务器下测试，正确的回应如下。</p>
<p>Cluster is start!<br />
SELF:<br />
ServiceName:B<br />
IP:192.168.0.2<br />
PORT:8080<br />
WebAppName:WebReport</p>
<p>Other Server List:<br />
NO1: ServiceName:A = 192.168.0.1:8080/WebReport – OK</p>
<p>假如，没有显示Cluster is start，那么说明该机的配置没有生效，请检查配置文件后，重新启动应用，并且再次依照上面步骤测试。</p>
<p>假如显示是这样：</p>
<p>Cluster is start!<br />
Can not find Own Service Info.<br />
LocalIP:192.168.0.39<br />
LocalPort:8070。</p>
<p>说明，集群配置了，但是系统无法根据自身找到的IP和端口匹配到配置文件中的信息。而系统找到的IP是192.168. 0.39，端口是8070.可能您配置成了192.168.0.38：8080，那系统就找不到相应的节点信息了。当然由于各种原因可能系统无法拿到正确的IP和端口，这时请您检查后，设置正确的IP和端口后，在相应的ClusterService的节点上加isSelf属性(isSelf=”true”)。</p>
<p>假如，SELF:下的信息不正确，或者没有信息，也请检查配置文件；假如，下面列出的其它机器的信息不正确，或者有遗漏，也请检查配置信息后，重启报表应用重试；假如，其它服务器的回应，没有回应OK，例如回应Connection timed out: connect。请检查一下那台服务器的配置信息，检查网络连接，ping下那台机器的ip地址，看看是否能ping通，然后查看那台服务器报表应用的端口和应用名称是否设置正确。可以在浏览器中输地址直接在内网中访问下那台机上的报表应用，看看设置的ip、端口号等是否设置正确。修改后，重新启动报表应用，重试。</p>
<p>假如您觉得一台台服务器都这样去测试太麻烦，您也可以直接改成op=cluster_test_all 。(http://localhost:8080/WebReport/ReportServer?op=cluster_test_all)来一起测试。这个其实就是在本机上给其它机器发op=cluster_test的请求，然后把回应一起显示出来。例如这样：</p>
<p>Cluster is start<br />
SELF:<br />
ServiceName:A<br />
IP:192.168.100.39<br />
PORT:8080<br />
WebAppName:WebReport</p>
<p>Other Server List:<br />
NO1: ServiceName:B = 192.168.100.39:8070/WebReport<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Test it(op = cluster_test) &#8211; RE:<br />
Cluster is start! SELF:<br />
ServiceName:B<br />
IP :192.168.100.39<br />
PORT :8070<br />
WebAppName :WebReport</p>
<p>Other Server List:<br />
NO1: ServiceName:A = 192.168.100.39:8080/WebReport &#8211; OK</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
这个可能回应的时间比较长，所以假如长时间没有回应，说明某台机器的配置有问题，还是需要照上面的步骤一台台机器去测试。</p>
<p><b>4.	结束</b></p>
<p>当以上检查步骤结束。所有服务器都检查，发现正确后。恭喜，配置就完成了。</p>
<p>假如您在配置过程中，有无法解决的问题，请与我们联系。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/install/deploy6_5.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FineReport6.2企业版Windows集群配置说明</title>
		<link>http://www.finereport.com/knowledge/install/deploy6_2.html</link>
		<comments>http://www.finereport.com/knowledge/install/deploy6_2.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 07:02:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表安装部署]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/install/finereport6-2%e4%bc%81%e4%b8%9a%e7%89%88windows%e9%9b%86%e7%be%a4%e9%85%8d%e7%bd%ae%e8%af%b4%e6%98%8e.html</guid>
		<description><![CDATA[前述： windows集群同J2EE的集群不同，因为它是操作系统自带的集群支持，它没有J2EE集群对java的web应用的良好支持，例如session复制以及session粘滞。所以对windows集群，需要特别配置一下，以此来支持集群的功能。 简单原理说明： Windows集群的均衡负载会根据情况，将外部请求分配给集群内的服务器处理。当一个会话（Session）在A服务器上产生并开始，产生了一部分会话信息将保存到A服务器的内存中。假如这次会话中的一次请求被windows集群的均衡负载调度器分配到了B服务器去处理，那么问题就产生了，B服务器中的内存中并没有这个会话的信息，那么就会报session timeout。 而我们的配置，会在集群的服务器间建立联系。当B服务器收到请求，发现这个请求的会话不是自己产生的，那么它会根据请求中的信息，判断出这个会话是由哪台服务器产生。接着它会将这个请求通过内网转发给相应的那台服务器去处理。这样相当于就实现了J2EE集群的会话粘滞的功能。简单的说，会话粘滞就是保持一个会话中的多次交互都由一台集群中的服务器处理。这样就不会再产生上述的问题。 前提： 集群的服务器间需要有内网间通信的支持。 配置步骤： 集群内的每台安装有报表应用的服务器都需要这样配置。 1.关闭现在的报表服务。 2.更换jar文件。（文件在配置包的resource文件夹中） A.找到/WebReport?（这个是您的WEB应用的名称）/WEB-INF/lib文件夹（lib文件夹是和存放报表模板文件的repolets文件夹平级的）。拷贝commons-codec-1.2.jar，commons-httpclient-3.1.jar到lib文件夹下。拷贝fr-server-6.2.jar到lib文件夹下覆盖原来的相同名称的jar文件。 B.假如您已经部署了报表应用到tomcat等web服务器下，那么不需要执行这一步。 假如您是直接装了我们的报表设计器，并且是启动我们的内置服务器在做简单测试。那么请将fr-designer-6.2.jar覆盖设计器安装目录下lib文件夹下的相同名称jar文件。 3.增加配置文件。 将配置包resource文件夹下的cluster.xml打开。看见如下内容 &#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; ?&#62; &#60;ClusterConfig useCluster=&#34;true&#34;&#62; //useCluster=”true”表示启用集群配置 &#60;ClusterService isSelf=&#34;true&#34;&#62; //这个节点包含一台服务器的相关信息,isSelf=”true”说明这是本机信息 &#60;ServiceName&#62;A&#60;/ServiceName&#62; //给这台服务器取一个区别于其他机器的别名 &#60;ip&#62;192.168.0.1&#60;/ip&#62; //这台服务器在内网中的IP地址 &#60;port&#62;8080&#60;/port&#62; //报表应用的端口 &#60;WebAppName&#62;WebReport&#60;/WebAppName&#62; //报表应用的名称 &#60;/ClusterService&#62; &#60;ClusterService&#62; //这里没有isSelf=”true”默认就为false，表示这是其它机器的信息 &#60;ServiceName&#62;B&#60;/ServiceName&#62; &#60;ip&#62;192.168.0.2&#60;/ip&#62; &#60;port&#62;8080&#60;/port&#62; &#60;WebAppName&#62;WebReport&#60;/WebAppName&#62; &#60;/ClusterService&#62; &#60;/ClusterConfig&#62; 这里的每个ClusterService都是集群中一台服务器的相关信息。假如这个配置文件部署在A服务器下，那么ServiceName为A的那个ClusterService节点后加一个属性 isSelf=”true”，表示下这是本机的信息。相应的，假如是部署在B服务器下的文件，就需要在ServiceName为B的ClusterService节点后加isSelf=”true”，如下所示。 &#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; ?&#62; &#60;ClusterConfig useCluster=&#34;true&#34;&#62; &#60;ClusterService&#62; &#60;ServiceName&#62;A&#60;/ServiceName&#62; &#60;ip&#62;192.168.0.1&#60;/ip&#62; [...]]]></description>
			<content:encoded><![CDATA[<p><b>前述：</b></p>
<p>windows集群同J2EE的集群不同，因为它是操作系统自带的集群支持，它没有J2EE集群对java的web应用的良好支持，例如session复制以及session粘滞。所以对windows集群，需要特别配置一下，以此来支持集群的功能。</p>
<p><b>简单原理说明：</b></p>
<p>Windows集群的均衡负载会根据情况，将外部请求分配给集群内的服务器处理。当一个会话（Session）在A服务器上产生并开始，产生了一部分会话信息将保存到A服务器的内存中。<span id="more-1999"></span>假如这次会话中的一次请求被windows集群的均衡负载调度器分配到了B服务器去处理，那么问题就产生了，B服务器中的内存中并没有这个会话的信息，那么就会报session timeout。</p>
<p>而我们的配置，会在集群的服务器间建立联系。当B服务器收到请求，发现这个请求的会话不是自己产生的，那么它会根据请求中的信息，判断出这个会话是由哪台服务器产生。接着它会将这个请求通过内网转发给相应的那台服务器去处理。这样相当于就实现了J2EE集群的会话粘滞的功能。简单的说，会话粘滞就是保持一个会话中的多次交互都由一台集群中的服务器处理。这样就不会再产生上述的问题。</p>
<p><b>前提：</b></p>
<p>集群的服务器间需要有内网间通信的支持。</p>
<p><b>配置步骤：</b></p>
<p>集群内的每台安装有报表应用的服务器都需要这样配置。</p>
<p>1.关闭现在的报表服务。</p>
<p>2.更换jar文件。（文件在配置包的resource文件夹中）</p>
<p>A.找到/WebReport?（这个是您的WEB应用的名称）/WEB-INF/lib文件夹（lib文件夹是和存放报表模板文件的repolets文件夹平级的）。拷贝commons-codec-1.2.jar，commons-httpclient-3.1.jar到lib文件夹下。拷贝fr-server-6.2.jar到lib文件夹下覆盖原来的相同名称的jar文件。</p>
<p>B.假如您已经部署了报表应用到tomcat等web服务器下，那么不需要执行这一步。<br />
假如您是直接装了我们的报表设计器，并且是启动我们的内置服务器在做简单测试。那么请将fr-designer-6.2.jar覆盖设计器安装目录下lib文件夹下的相同名称jar文件。</p>
<p>3.增加配置文件。<br />
将配置包resource文件夹下的cluster.xml打开。看见如下内容</p>
<pre class="brush: plain;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;ClusterConfig useCluster=&quot;true&quot;&gt;      //useCluster=”true”表示启用集群配置
	&lt;ClusterService isSelf=&quot;true&quot;&gt;
          //这个节点包含一台服务器的相关信息,isSelf=”true”说明这是本机信息
		&lt;ServiceName&gt;A&lt;/ServiceName&gt;  //给这台服务器取一个区别于其他机器的别名
		&lt;ip&gt;192.168.0.1&lt;/ip&gt;            //这台服务器在内网中的IP地址
		&lt;port&gt;8080&lt;/port&gt;              //报表应用的端口
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;  //报表应用的名称
	&lt;/ClusterService&gt;
	&lt;ClusterService&gt;
         //这里没有isSelf=”true”默认就为false，表示这是其它机器的信息
		&lt;ServiceName&gt;B&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.2&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
&lt;/ClusterConfig&gt;
</pre>
<p>这里的每个ClusterService都是集群中一台服务器的相关信息。假如这个配置文件部署在A服务器下，那么ServiceName为A的那个ClusterService节点后加一个属性 isSelf=”true”，表示下这是本机的信息。相应的，假如是部署在B服务器下的文件，就需要在ServiceName为B的ClusterService节点后加isSelf=”true”，如下所示。</p>
<pre class="brush: plain;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;ClusterConfig useCluster=&quot;true&quot;&gt;
	&lt;ClusterService&gt;
		&lt;ServiceName&gt;A&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.1&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
	&lt;ClusterService  isSelf=&quot;true&quot;&gt;
		&lt;ServiceName&gt;B&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.2&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
&lt;/ClusterConfig&gt;         //这个就是B服务器相应的配置文件了
</pre>
<p>ServiceName是为一台服务器取的别名，只是为了区别标记一下。最好简单方便，如A、B、C或者A1、A2等。注意不能是中文。</p>
<p>IP、PORT、和WebAppName上面的注释中有介绍。</p>
<p>IP是该台服务器内网中的IP，就是其它服务器能与之通信的IP。Port是报表应用的端口号，假如是部署在tomcat下，那么就是tomcat的端口号，默认是8080.例如我们的内置服务器是8079。WebAppName是报表应用的名称，我们默认的是WebReport。</p>
<p>简单的讲。如上面的那个例子。B服务器的信息如下。</p>
<pre class="brush: plain;">
             &lt;ClusterService&gt;
		&lt;ServiceName&gt;B&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.2&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
</pre>
<p>那么正确的配置的结果，就是在A服务器上，假如有浏览器，浏览器中输入：</p>
<p>http://192.168.0.2:8080/WebReport/ReportServer?reportlet=xxx.cpt</p>
<p>就能访问到B服务器上的报表应用。这个url中的IP、端口号和web应用名称就是上面配置信息里面的。注：xxx.cpt只是举个例子。</p>
<p>那么综上说明，假如集群中多了一台C服务器，给它取个别名就叫C。内网IP是192.168.0.3。装了tomcat，端口默认是8080。报表应用名称也是默认是WebReport。那么C服务器下的配置文件应该如下所示：</p>
<pre class="brush: plain;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;ClusterConfig useCluster=&quot;true&quot;&gt;
	&lt;ClusterService&gt;
		&lt;ServiceName&gt;A&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.1&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
	&lt;ClusterService&gt;
		&lt;ServiceName&gt;B&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.2&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
	&lt;ClusterService  isSelf=&quot;true&quot;&gt;
		&lt;ServiceName&gt;C&lt;/ServiceName&gt;
		&lt;ip&gt;192.168.0.3&lt;/ip&gt;
		&lt;port&gt;8080&lt;/port&gt;
		&lt;WebAppName&gt;WebReport&lt;/WebAppName&gt;
	&lt;/ClusterService&gt;
&lt;/ClusterConfig&gt;
</pre>
<p>最后，请根据上面的格式，为每一台服务器修改相应的cluster.xml文件，并且将其拷贝到报表应用下WEB-INF\resources文件夹下。注意:xml文件的保存格式是 utf-8 no Bom的格式。一般用写字板打开配置包下的cluster.xml文件，修改保存就可以。</p>
<p><b>4.	测试配置是否生效。</b></p>
<p>当集群中的服务器都已经按照上述步骤配置好，并且重新启动报表应用后。依次在各台服务器上做如下测试。例如，现在在A服务器下，先本机测试下报表能否访问，测一张简单的模板就行。能正常访问(ie浏览器可能需要将localhost或者127.0.0.1的本机地址添加到信任站点中才能显示页面)，接着在浏览器上输入:</p>
<p>http://localhost:8080/WebReport/ReportServer?op=cluster_test</p>
<p>上述url地址前面部分按情况，请换上相应报表应用的端口号和应用名称。然后假如设置正常就能看到如下的信息：（以上述A、B两台服务器的配置文件举例）</p>
<p>Cluster is start<br />
SELF:<br />
    ServiceName:A<br />
    IP         :192.168.0.1<br />
    PORT       :8080<br />
    WebAppName :WebReport</p>
<p>NO1:<br />
    ServiceName:B<br />
    IP         :192.168.0.2<br />
    PORT       :8080<br />
    WebAppName :WebReport<br />
****************************************<br />
RE:<br />
Cluster is start<br />
INFO:<br />
    ServiceName:B<br />
    IP         :192.168.0.2<br />
    PORT       :8080<br />
    WebAppName :WebReport</p>
<p>**************************************** </p>
<p>IE中可能没有换行，请见谅。</p>
<p>这样说明，配置生效，A服务器能与B服务器间进行通信。*****中间的是B服务器的回应，说明其也已启动。再次查看下信息是否有误。那么相应的在B服务器下，正确的回应如下：</p>
<p>Cluster is start<br />
SELF:<br />
    ServiceName:B<br />
    IP         :192.168.0.2<br />
    PORT       :8080<br />
    WebAppName :WebReport</p>
<p>NO1:<br />
    ServiceName:A<br />
    IP         :192.168.0.1<br />
    PORT       :8080<br />
    WebAppName :WebReport<br />
****************************************<br />
RE:<br />
Cluster is start<br />
INFO:<br />
    ServiceName:A<br />
    IP         :192.168.0.1<br />
    PORT       :8080<br />
    WebAppName :WebReport</p>
<p>****************************************</p>
<p>假如没有显示Cluster is start，那么说明该机的配置没有生效，请检查配置文件后，重新启动应用，并且再次依照上面步骤测试;假如SELF:下的信息不正确，或者没有信息，也请检查配置文件，看看isSelf属性是否写对;假如下面列出的其它机器的信息不正确，或者有遗漏，也请检查配置信息后，重启报表应用重试;假如其它服务器的回应，就是******中的信息，有问题。请检查下那台服务器的配置信息，检查网络连接，ping下那台机器的ip地址，看看是否能ping通。然后查看那台服务器报表应用的端口和应用名称是否设置正确。</p>
<p>可以在浏览器中输地址直接在内网中访问下那台机上的报表应用，看看设置的ip、端口号等是否设置正确。修改后，重新启动报表应用，重试。</p>
<p><b>5.	结束</b></p>
<p>当以上检查步骤结束。所有服务器都检查，发现正确后。恭喜，配置就完成了。</p>
<p>假如您在配置过程中，有无法解决的问题，请与我们联系。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/install/deploy6_2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sql server 2000 连接测试</title>
		<link>http://www.finereport.com/knowledge/install/sql.html</link>
		<comments>http://www.finereport.com/knowledge/install/sql.html#comments</comments>
		<pubDate>Tue, 06 Jul 2010 06:59:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[报表安装部署]]></category>
		<category><![CDATA[报表教程]]></category>

		<guid isPermaLink="false">http://www.finereport.com/CN/wordpress/knowledge/install/sql-server-2000-%e8%bf%9e%e6%8e%a5%e6%b5%8b%e8%af%95.html</guid>
		<description><![CDATA[Sql server 2000 数据库本身规定了其数据库连接URL 的一般格式，如下： jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]] 之间无空格，其中： jdbc:sqlserver://（必需）称为子协议，且为常数。 serverName（可选）是要连接到的服务器的地址。它可以是 DNS 或 IP 地址，也可以是本地计算机地址 localhost 或 127.0.0.1。如果未在连接 URL 中指定服务器名称，则必须在属性集中指定。 instanceName （可选）是 serverName 上要连接到的实例。如果未指定，则会连接到默认实例（master）。 portNumber（可选）是 serverName 上要连接到的端口。默认值为 1433。如果使用默认端口，则无需在 URL 中指定端口及其前面的“:”。 property（可选）是一个或多个选项连接属性。有关详细信息，请参阅设置连接属性。可指定该列表中的任何属性。属性只能用分号（“;”）分隔，且不允许重复。 连接实例写法有： 使用用户名和密码连接到本地计算机上的默认数据库： jdbc:sqlserver://localhost;user=MyUserName;password=*****; 使用集成身份验证连接到本地计算机上的默认数据库： jdbc:sqlserver://localhost;integratedSecurity=true; 连接到远程服务器上的指定数据库： jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true; 连接到远程服务器上的默认端口： jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks;integratedSecurity=true; 通过指定自定义应用程序名称进行连接： jdbc:sqlserver://localhost;databaseName=AdventureWorks; integratedSecurity=true;applicationName=MyApp; 以我们设计器中的URL写法为例详细说明： jdbc:microsoft:sqlserver://192.168.100.112:1433;databaseName=test 其中 databaseName=test 为连接属性，属性值只用“;”分割，我们只用了一个，如有多个属性便可写成: ;databaseName=test;user=MyUserName;password=*****; 因此在test后加不加“;” 连接效果一样，即URL写成 jdbc:microsoft:sqlserver://192.168.100.112:1433;databaseName=test 或jdbc:microsoft:sqlserver://192.168.100.112:1433;databaseName=test； 都能正确读取test数据库 Sql server 2000 [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Sql server 2000 数据库本身规定了其数据库连接URL 的一般格式，如下：<br />
       jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]<br />
       之间无空格，其中：</p>
<p><span id="more-1998"></span></p>
<ul type=disc>
<li>jdbc:sqlserver://（必需）称为子协议，且为常数。
<li>serverName（可选）是要连接到的服务器的地址。它可以是 DNS 或 IP 地址，也可以是本地计算机地址 localhost 或 127.0.0.1。如果未在连接 URL 中指定服务器名称，则必须在属性集中指定。
<li>instanceName （可选）是 serverName 上要连接到的实例。如果未指定，则会连接到默认实例（master）。
<li>portNumber（可选）是 serverName 上要连接到的端口。默认值为 1433。如果使用默认端口，则无需在 URL 中指定端口及其前面的“:”。
<li>property（可选）是一个或多个选项连接属性。有关详细信息，请参阅设置连接属性。可指定该列表中的任何属性。属性只能用分号（“;”）分隔，且不允许重复。
       </ul>
<li>连接实例写法有：
<ul type=disc>
<li>使用用户名和密码连接到本地计算机上的默认数据库：<br />
              jdbc:sqlserver://localhost;user=MyUserName;password=*****; </p>
<li>使用集成身份验证连接到本地计算机上的默认数据库：<br />
              jdbc:sqlserver://localhost;integratedSecurity=true;</p>
<li>连接到远程服务器上的指定数据库：<br />
              jdbc:sqlserver://localhost;databaseName=AdventureWorks;integratedSecurity=true; </p>
<li>连接到远程服务器上的默认端口：<br />
              jdbc:sqlserver://localhost:1433;databaseName=AdventureWorks;integratedSecurity=true; </p>
<li>通过指定自定义应用程序名称进行连接：<br />
              jdbc:sqlserver://localhost;databaseName=AdventureWorks;<br />
integratedSecurity=true;applicationName=MyApp;
       </ul>
<li>以我们设计器中的URL写法为例详细说明：<br />
       jdbc:microsoft:sqlserver://192.168.100.112:1433;databaseName=test<br />
       其中</p>
<ul type=disc>
<li>databaseName=test 为连接属性，属性值只用“;”分割，我们只用了一个，如有多个属性便可写成:<br />
              ;databaseName=test;user=MyUserName;password=*****;<br />
              因此在test后加不加“;” 连接效果一样，即URL写成<br />
              jdbc:microsoft:sqlserver://192.168.100.112:1433;databaseName=test<br />
              或jdbc:microsoft:sqlserver://192.168.100.112:1433;databaseName=test；<br />
              都能正确读取test数据库</p>
<li>Sql server 2000 数据库默认的端口为1433，默认的数据库实master（应该是安装时自带的数据库）<br />
               当URL中databaseName 前误加了一“_”空格后，如下：<br />
               jdbc:microsoft:sqlserver://192.168.100.112:1433; databaseName=test<br />
               此时获取URL时自动判断空格时URL结束，即获得的实际URL为：<br />
               jdbc:microsoft:sqlserver://192.168.100.112:1433;<br />
               而此URL连接的为sql server 2000 默认的数据库 master,所以读取的就是数据库master中的表
        </ul>
</ol>
<p><b>结论：</b></p>
<p>在写sql server 2000的数据库URL时，除其本身已有的特殊字符外，要添加其他特殊字符必须进行转义，将这些字符包含在大括号中， JDBC 驱动程序将支持对其进行转义。例如，{;} 将转义分号。</p>
<p>转义的值可以包含特殊字符（特别是“=”、“;”、“[]”和空格），但不能包含大括号。应将必须进行转义且包含大括号的值添加到属性集中。</p>
<p><b>方案：</b></p>
<p>将我们所用的数据库改变为默认数据库是一种方法，但一般存在多个可用的数据库，所以除sqlserver本身规定的URL格式外，在我们的程序中最好进行限制，只使用jdbc:microsoft:sqlserver://ip:port;databaseName=Databasename一种写法，且中间不能有空格等</p>
]]></content:encoded>
			<wfw:commentRss>http://www.finereport.com/knowledge/install/sql.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

