NC基础技术培训.docx
《NC基础技术培训.docx》由会员分享,可在线阅读,更多相关《NC基础技术培训.docx(22页珍藏版)》请在冰豆网上搜索。
![NC基础技术培训.docx](https://file1.bdocx.com/fileroot1/2023-4/19/569c9e65-9328-4b1b-80e8-ad75af33bdd5/569c9e65-9328-4b1b-80e8-ad75af33bdd51.gif)
NC基础技术培训
NC整体架构及系统维护
一、NC产品整体架构图
我们由下至上来解读一下这幅图:
第一层为面向于底层与操作系统、数据库的连接访问,NC构造了数据库优化引擎技术及NC跨平台快速部署技术。
第二层是NC核心技术平台,他包容了多项目技术支持,如EJB,HTTP服务等等。
第三层是由各技术平台支撑、实现的应用平台。
应用平台是一组基本的应用元素组合。
第四层是将各应用元素组合生成应用解决方案即各产品模块
第五层是高于具体产品模块上构造NC专项解决方案及NC行业解决方案
二、NC产品技术特点
1.NC产品体系结构为B/S结构。
网络应用结构具有三种方式:
(1)文件/服务器方式,特点:
应用程序在客户端运行,数据以共享文件形式存储在服务器。
服务器不管理数据。
(2)客户端/服务器方式(C/S)方式,特点:
服务器不再是简单的数据库文件的集中保存设备,而是为客户端完成确切的操作,且仅将操作结果传送给客户端。
(3)
浏览器/服务器方式(B/S)方式,特点:
采用统一的客户前端(如浏览器),应用和数据访问均通过应用服务器来完成;优点:
软件系统安装、升级维护、数据备份简单;系统总体拥有成本低;支持大规模应用
2.以java技术为基础,基于J2EE的应用
该特点使用NC产品具有良好的平台无关性,同时由于NC产品基于J2EE标准企业级n层应用设计,客户端表现逻辑与业务代码完全隔离,使得系统具有良好的扩展能力,二次开发变得简单容易,为企业构筑统一信息平台带来可能。
3.能与大型数据库实现很好的交互
4.充分考虑、建立了完善的完全机制
网络应用的安全威胁来自于:
系统崩溃(硬件、软件);病毒传播;非法访问……
对于NC产品的安全机制我们通过以下几方面来构造、实现:
Nc产品应用软件已在应用层提供了多层次的安全控制功能,大型数据库自身也提供了一套完整的安装机制,在网络访问上我们提倡设置有效的防火墙来保证网络、WEB服务器的安全。
经过层层安全机制的考虑及设立才能保障整个应用系统的可靠。
三、J2EE技术
1.J2EE
简单的说我们可以把它看成一个囊括多种组件及系统级服务、接口的容器,
如图所示
J2EE体系构架中提供了EJB,JSP,Servlet,Applet,JavaBean等组件,其中EJB是用于实现BusinessLogic的核心组件。
J2EE应用服务器的核心职责就是为各种组件提供运行环境和各种系统级服务
2.J2EE的中间件框架
框架如图所示:
中间件的功能在于为各种服务提供引擎,将各种服务协同作业起来。
我们也把它叫做应用服务器,它是支撑NC系统运行的核心。
应用服务器的功能在于:
(1)将各种不同类型的客户端,不同的操作系统,不同的数据库系统粘结起来。
(2)提供Web;Components;JDBC;Transaction;Security;Directory/Naming;FaultTolerance;LoadBalancing;ResourcePooling;AuditingLogging;Monitoring等功能。
3.用友J2EE应用服务器的应用框架
用友J2EE应用服务器中主要的组件有:
为前端调用提供服务的HTTPServer;与后台数据库连接的连接池及J2EE的基本组件,如EJB容器等。
用友J2EE应用服务器在前端客户请求、业务应用、后台数据库之间建立起了交互纽带。
4.用友J2EE应用服务与其它Server及操作系统的兼容性
WebServer:
可以与ApacheWebServer,IIS……集成;
多数据库支持
支持Oracle,DB2,MSSQLServer,SysbaseSQLServer,以及开发源码的MySQL;
NC与大型数据库的连接方式有两种:
一为ODBC,ODBC是Microsoft推出最早的整合异质数据库的数据库接口。
这一连接方式应用于象SQLServer这样无JDBC驱动的数据库;另一种为JDBC,JDBC即为Java语言访问异质数据库的数据库接口。
与其它的J2EE应用服务器兼容
兼容WebLogic,WebSphere,……;
多操作系统支持
支持Windows,Unix,Linux。
不同的操作系统具有不同的虚拟机(JVM),使java应用具有这样的跨平台
性,见下图:
Java语言与传统语言相比不同之处在于源程序
编译后生成的是中间码,而不是基于硬件系统的二进制码,中间码(也是我们常说的应用代码)放在不的系统平台上经过本系统的java解释器解释后才形成二进制指令。
四、NC产品运行环境的规划
1.规划前的信息收集
在做NC产品运行环境规划前,我们必须要做以下信息的收集:
应用的规模有多大
与应用规模相关的因素有:
系统涉及到的分支机构有多少;共有多少个客户端;客户端是如何分布的;业务数据量有多大;最大的并发用户数据是多少。
网络环境现状如何
与网络环境相关的因素有:
NC系统涉及到的所有机构之间的组网方式及网络带宽;网络的使用状况。
即有无其它应用,网络高峰期情况
服务器现状
当客户要求在现有服务器上构架NC系统时,对于客户服务器现有配置了解是至关重要的。
服务器的环境配置需要清楚以下两个方面的情况:
(1)硬件配置及相关数量,这包括CPU的主频、CPU的数量、内存的大小、硬盘的配置等。
(2)软件配置,这包括操作系统类型、版本;数据库类型、版本等。
未来发展的规划是如何
未来发展规划我们要了解以下几方面的内容:
项目预算计划;网络发展规划;系统软硬件采购计划;系统最终的应用规模;对系统应用效率的要求。
2.规划的内容
网络环境
我们要估计整个NC系统中最大并发用户数,也可以把它看做总站点数。
这一数据直接影响到了网络带宽的要求
硬件配置
尽量向客户推荐已经过严格测试或已有项目考验的环境配置,不要一味的跟进新产品。
我们要充分考虑用户的业务数据量及系统可靠性要求,这些数据决定了服务器的磁盘存储容量及配置。
软件环境
选择操作环境要考虑到系统可靠性要求,同时要考虑用户技术人员的技术水平、在操作系统上我们的NC产品是否经过测试或项目考验。
3.NC产品应用过程中所需的系统性能调整
NC产品在使用过程中若出现效率低现象,问题无非在这几个方面:
(1)服务器硬件配置较低:
CPU主频低、内存小;对于业务量较大、并发用户数据较多时应将数据库服务器与应用服务器分开;客户机配置较低,客户机内存配置建议在256M。
(2)网络带宽较窄,通过拔号或互联网连接,应用速度会很慢;网络交换设备效率不高。
(3)以上硬件配置问题若不存在,我们来检查一下软件系统配置。
首先,是数据库的性能调整。
我们来定位一下数据库配置是否遵寻了以下原则:
是否为数据库分配了尽可能大的内存区域,若服务器磁盘未做RAID,要保证数据文件分别放置在不同的磁盘上。
其次,是应用服务器的配置,在启动中间件前对startup.bat文件进行修改,见参数:
.\ufjdk\bin\java-Xms200m-Xmx400m-cp%_CLASSPATH%-Dnc.install.home.path=%NC_EXT_DIR%ufmiddle.start.tomcat.StartMiddle.\ierp\bin\prop.xml-DEJBConfigDir=./ejbXMLs-DExtServiceConfigDir=./ejbXMLs-DEnableSqlDebug=true将java后的-Xms200m–Xmx400m数据值调大,对于jdk1.3.0–Xmx值能设到2G,所以我们可以将以上值改为java–Xms1024m–Xmx2048m当然要在服务器实际内存允许情况下。
最后,在客户端“控制面板”->“Javaplug-in”->“Javaruntime参数”处框中加入-Xms100m–Xmx200m值。
(4)NC产品本身效率问题。
这一问题是造成整个系统效率差的关键,而这一问题是要依赖于产品事业部做优化的,也是我们实施人员无能为力的。
五、应用服务器维护
1.启动应用方法:
在windows平台下,双击NC产品安装目录下的startup.bat文件来启动,命令执行后不要关闭窗口;在unix平台下,先用vi编辑NC产品安装目录下的startup_needjdk.sh文件在java命令结尾处加入’&’符号见下例所示:
${JAVA_HOME}/bin/java-Xms500m-Xmx500m-cp${_CLASSPATH}
-Dnc.install.home.path=${NC_EXT_DIR}fmiddle.start.tomcat.StartMiddle
./ierp/bin/prop.xml-DEJBConfigDir=./ejbXMLs
-DExtServiceConfigDir=./ejbXMLs&
再执行nohup./startup_needjdk.sh命令来启动应用,应用启动后窗口可以关闭。
2.应用启动后可能出现的问题及解决办法:
(1)当在客户端IE游览器中输入地址确定后,页面显示“找不到该页”时说明应用服务器端的程序被中止了。
解决方法:
重新启动应用,等待一两分钟后,打开
%NCHOME%\NCLogs\UFNC3001_0.log文件看到以下信息时说明应用启动正确,此时在IE浏览器中输入地址就会调出主页面了。
系统正常时UFNC3001_0.log值:
2002-12-1209:
06:
00SO|当前的运行参数值状态:
2002-12-1209:
06:
00SO|InRuntimeMode=true
2002-12-1209:
06:
00SO|DebugLevel=0
2002-12-1209:
06:
00SO|EnableSqlTrace=false
2002-12-1209:
06:
00SO|EnableSqlDebug=true
2002-12-1209:
06:
00SO|EnableFixJdbcOdbc=true
2002-12-1209:
06:
00SO|SupportTimeStamp=true
2002-12-1209:
06:
00SO|AutoInsertSpace=false
2002-12-1209:
06:
00SO|EnableServletDebug=false
2002-12-1209:
06:
00SO|EnableLogInvalidServletCall=false
2002-12-1209:
06:
00SO|EnableSqlTranslate=true
2002-12-1209:
06:
00SO|bEnablePreparedStatement2Statement=true
2002-12-1209:
06:
00SO|SupportSqlExport=false
2002-12-1209:
06:
00SO|EnableBODebug=false
2002-12-1209:
06:
00SO|EnableDeadLockDetect=false
2002-12-1209:
06:
00SO|[预警平台]阅读代理监视器开始执行...
2002-12-1209:
06:
00StartPreAlart服务启动完成
2002-12-1209:
06:
00SO|[预警平台]发送代理监视器开始执行...
2002-12-1209:
06:
00SO|J:
\khcw_appli
2002-12-1209:
06:
00SO|服务器间数据服务在端口:
1717运行...
2002-12-1209:
06:
00PlanService服务启动完成
2002-12-1209:
06:
00SO|开始扫描类文件
2002-12-1209:
06:
00SO|enterresend
2002-12-1209:
06:
00SO|发送服务启动
2002-12-1209:
06:
00SO|
2002-12-1209:
06:
00SO|
2002-12-1209:
06:
12SO|............类文件扫描结束,耗时12032毫秒
2002-12-1209:
06:
12ClassFileScanService服务启动完成
2002-12-1209:
06:
12MessageDispatchService服务启动完成
2002-12-1209:
06:
13SO|成功加载EJBBean:
nc.bs.pub.services.ServiceProviderBO
2002-12-1209:
06:
13SO|成功加载EJBBean:
nc.bs.pub.oid.OIDCreaterBO
2002-12-1209:
06:
13SO|成功加载EJBBean:
nc.bs.pub.billcodemanage.BillcodeRuleBO
2002-12-1209:
06:
13SO|成功加载EJBBean:
nc.bs.dap.out.DapBO
2002-12-1209:
06:
13SO|成功加载EJBBean:
nc.bs.dmp.out2.Dmp2BO
2002-12-1209:
06:
13SO|成功加载EJBBean:
nc.bs.hr.initdata.HRInitDataBO
2002-12-1209:
06:
13EJB_SERVICE服务启动完成
2002-12-1209:
06:
13动态会计平台服务启动完成
2002-12-1209:
06:
13SO|2002-12-1209:
06:
13-ContextManager:
AddingcontextCtx()
2002-12-1209:
06:
13SO|2002-12-1209:
06:
13-ContextManager:
AddingcontextCtx(/nc)
2002-12-1209:
06:
13SO|Startingtomcat.Checklogs/tomcat.logforerrormessages
2002-12-1209:
06:
13SO|2002-12-1209:
06:
13-ContextManager:
AddingcontextCtx(/nc_web)
2002-12-1209:
06:
13SO|2002-12-1209:
06:
13-ContextManager:
AddingcontextCtx(/tablePKConfig.ini)
2002-12-1209:
06:
14SO|2002-12-1209:
06:
14-PoolTcpConnector:
StartingHttpConnectionHandleron80
2002-12-1209:
06:
14StartTomcat服务启动完成
2002-12-1209:
06:
14SO|2002-12-1209:
06:
14-PoolTcpConnector:
StartingAjp12ConnectionHandleron8007
2002-12-1209:
06:
14SocketService服务启动完成
2002-12-1209:
06:
14SO|系统启动完成,开始正常运转
应用启动不正常,一般的错误提示为:
2002-12-1209:
06:
14SO|2002-12-1209:
06:
14-PoolTcpConnector:
StartingHttpConnectionHandleron80
2002-12-1209:
06:
14StartTomcatJVM addressonused
2002-12-1209:
06:
14SO|2002-12-1209:
06:
14-PoolTcpConnector:
StartingAjp12ConnectionHandleron8007
2002-12-1209:
06:
14SocketService服务启动完成
出现JVMaddressonused原因为80端口被占用。
对于windows系统可能是WIN2000自带的IIS服务被打开,手动停止它:
“开始”->“程序”->“管理工具”->“Internet服务管理器”,将Internet信息服务中的“默认web站点”及“管理web站点”服务均停止,见下图:
对于unix系统可能是安装了其它的web服务,将该web服务停止。
不同的unix系统会做不同的缺省web服务,停止web服务的命令也会不同,这可以请用户的系统管理员来做。
(2)当系统出现主界面后,点击“NC管理软件”会出现以下界面(图1-1)
图1-1
此时点击“公司”栏处的选择框,正常状态下应出现各分行的列表,如下图1-2
图1-2
如果跳出的“单位目录”框是空的说明此时应用与数据库的连接不正常,出现这种不正常现象的可能有如下情况:
(1)数据库服务器被关闭了或网络连接不通。
我们可以通过ping数据库主机ip来验证,如ping不通就得去机房查看是否已关机、网络是否正常
(2)数据库停止了。
可用与数据库有关的其它工具来验证数据库是否确已停止,若确认则重新启动数据库:
如果数据库启动执行不正常。
看看错误提示,一般的可能性为某一数据文件受到了损坏,可以用备份的数据进行恢复。
3.停止应用方法:
在Windows平台下直接关闭启动时所打开的窗口即可,在unix平台下可telnet入应用服务器,用命令:
ps–ef|grepjava来得到中间件进程的进程号再用命令:
kill来中止该进程。
4.代码更新方法:
将需更新的代码在测试环境中测试无误后,对于windows平台下可将测试无误的代码“复制”、“粘帖”到相应的目录下;对于unix平台,在客户端用Leftp工具将代码上传到应用服务器覆盖对应的目录文件。
代码更新后需要重新启动中间件。
5.在业务操作过程中错误定位:
当业务操作过程中出现错误时,首先要验证操作是否正确?
有没有流程性的错误或者有必选项未输入。
当确认操作无误时,我们要打开日志文件看一看更详细的错误原因,日志文件在NC产品安装目录下的NCLog目录中,为修改日期最近的那一个。
问题多为两类:
一类为数据库错误,这样的错误在日志文件中会记录具体的数据库错误号。
我们可以根据数据库错误号及数据库错误信息文档来查知详细的错误原因、建议性的解决办法。
这一类问题在定位时因有章可循相对清晰、容易一些。
另一类为代码错误,这类问题在日志文件中记录的较为杂乱,相关的类被一一列示出来,不过我们要找重点也就是找错误提示部份,错误一般有以下几种:
a.classNotfound这说明相关的类在产品安装目录中找不到,我们就要来查看一下文件是不是不存在,对于unix平台还有可能是文件名大小写不同而造成找不到文件;b.空指针错误这一般是代码有误造成的;c.无此方法这一般是代码中某个调用的方法语法有误。
对于b,c类问题我们只能提交产品支持部从而获得正确的代码。
六、数据库服务器维护
1.查看数据库工作是否正常:
对于任何数据库来讲,我们都可以使用该数据库提供的连接平台来进行连接测试。
如果测试有误证明数据库当前工作不正常,我们就要在正常状态下重新启动数据库使用数据库工作重新正常。
在出现数据库损坏的情况下我们要做必要的数据库恢复。
2.备份及恢复数据库
2.1备份:
(这里只以oracle及db2数据库为例)
oracle:
1.在客户端配置与远程数据库的连接
通过Net8configurationassistant添加“本地网络服务名”
添加步骤如下:
选择“数据库版本”->“数据库名”->“TCP”协议->“主机名或ip地址”,“1521”端口号->“是,进行测试”->输入用户名及口令测试通过->输入“网络服务名”,即以下提到的连接名->点“完成”后以上设置被保存下来。
2.对于实施人员来讲一般客户端用导出数据(exp)的方式来备份数据库,参考命令如下:
expuserid=system/manager@<连接名>file=d:
\exp.dmpowner=ufsoft
db2:
法一:
以命令的方式来做,步骤如下:
1.进入db2cmd命令窗口
2.依次输入如下两命令:
db2forceapplicationall
db2backupdatabasenckhto/dbarch/db_backup
法二:
用本地控制中心来做,步骤如下:
1.将远程的(ip:
11.147.30.53)数据库通过控制中心添加到本地
(1)添加系统,如图(a-01):
(2)
a-01
●右键击“系统”选“添加”后,在弹出的“添加系统”窗口中“主机名”一项中输入IBM小型机的IP地址:
11.147.30.53后点击“检索”按钮。
●检索到远程IBM小型机系统后,会出现图a-02所示界面
a-02
●系统dataserver被添加后,点击“dataserver”此时会要求输入用户标识及口令,如图a-03
●
a-03
用户标识:
db2inst1口令:
db2inst1
(3)添加实例
打开“dataserver”节点,右键“实例”选“添加”会弹出“添加实例”窗口,如图a-04
a-04
在主机名处输入IBM小型机的IP(11.147.30.53),点击刷新后会看到实例名db2inst1,确认后将实例db2inst1加入。
(4)添加数据库
右键击“数据库”选“添加”,弹出“添加数据库”窗口,如图a-05示:
a-05
点“刷新”按钮,从数据名下拉框中选数据库NCKH后,点确认
通过以下几步,至此IBM小型机系统数据库添加到本地系统工作完成。
2.强制中断当前连接实例的所有应用
当做数据库备份时不允许有应用与数据库连接,所以我们要在备份前将应用强制中断。
右键击实例名db2inst1,在显示的菜单条中选择“应用程序”如图b-01所示
b-01
选择后,系统将会弹出“应用程序”窗口。
在该窗口中点击“强制全部”按钮,如图b-02:
b-02
强制中断程序完成后退出“应用程序”窗口
此时就可以做下一份工作:
备份了。
3.备份数据库
右键击数据库名NCKH,选择“备份”->“数据库…”如图b-03所示:
b-03
点击后,系统弹出一“备份数据库-NCKH”窗口,窗口如图b-04所示:
b-04
在“指定目录或磁带”框中输入/dbarch/db_backup或通过点击“浏览”按钮来选择目录到/dbarch/db_backup
最后点击“现在备份”按钮,系统会做数据库NCKH的备份,备份文件存放在/dbarch/db_backup目录下,文件名是自动以时间标识的。
2.2恢复:
(这里只以oracle及db2数据库为例):
oracle:
对应于exp命令导出的文件,我们需要用imp命