天天看點

weblogic

WebLogic是美國Oracle公司出品的一個application server,确切的說是一個基于JAVA EE架構的中間件,WebLogic是用于開發、內建、部署和管理大型分布式Web應用、網絡應用和資料庫應用的Java應用伺服器,将Java的動态功能和Java Enterprise标準的安全性引入大型網絡應用的開發、內建、部署和管理之中;

WebLogic是美商Oracle的主要産品之一,系并購BEA得來,是商業市場上主要的Java(J2EE)應用伺服器軟體(application server)之一,是世界上第一個成功商業化的J2EE應用伺服器, 已推出到12c(12.1.3) 版,而此産品也延伸出WebLogic Portal,WebLogic Integration等企業用的中間件(但當下Oracle主要以Fusion Middleware融合中間件來取代這些WebLogic Server之外的企業包),以及OEPE(Oracle Enterprise Pack for Eclipse)開發工具;

JMS即Java消息服務(Java Message Service)應用程式接口,是一個Java平台中關于面向消息中間件(MOM)的API,用于在兩個應用程式之間,或分布式系統中發送消息,進行異步通信,Java消息服務是一個與具體平台無關的API,絕大多數MOM提供商都對JMS提供支援;

JMS(Java Messaging Service)是Java平台上有關面向消息中間件(MOM)的技術規範,它便于消息系統中的Java應用程式進行消息交換,并且通過提供标準的産生、發送、接收消息的接口簡化企業應用的開發,翻譯為Java消息服務。

JMS是一種與廠商無關的 API,用來通路消息收發系統消息,它類似于JDBC(Java Database Connectivity),這裡,JDBC 是可以用來通路許多不同關系資料庫的 API,而 JMS 則提供同樣與廠商無關的通路方法,以通路消息收發服務,許多廠商都支援 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ, JMS 使您能夠通過消息收發服務(有時稱為消息中介程式或路由器)從一個 JMS 客戶機向另一個 JMS客戶機發送消息;

消息是 JMS 中的一種類型對象,由兩部分組成:報頭和消息主體;

報頭由路由資訊以及有關該消息的中繼資料組成;

消息主體則攜帶着應用程式的資料或有效負載;

根據有效負載的類型來劃分,可以将消息分為幾種類型,它們分别攜帶:

簡單文本(TextMessage)、可序列化的對象 (ObjectMessage)、屬性集合 (MapMessage)、位元組流 (BytesMessage)、原始值流 (StreamMessage),還有無有效負載的消息 (Message)。

JMS由以下元素組成:

JMS提供者(連接配接面向消息中間件的,JMS接口的一個實作,提供者可以是Java平台的JMS實作,也可以是非Java平台的面向消息中間件的擴充卡);

JMS客戶(生産或消費基于消息的Java的應用程式或對象);

JMS生産者(建立并發送消息的JMS客戶);

JMS消費者(接收消息的JMS客戶);

JMS消息(包括可以在JMS客戶之間傳遞的資料的對象);

JMS隊列(一個容納那些被發送的等待閱讀的消息的區域。與隊列名字所暗示的意思不同,消息的接受順序并不一定要與消息的發送順序相同,一旦一個消息被閱讀,該消息将被從隊列中移走);

JMS主題(一種支援發送消息給多個訂閱者的機制)

JMS對象模型包含如下幾個要素:

1)連接配接工廠。連接配接工廠(ConnectionFactory)是由管理者建立,并綁定到JNDI樹中。用戶端使用JNDI查找連接配接工廠,然後利用連接配接工廠建立一個JMS連接配接。

2)JMS連接配接。JMS連接配接(Connection)表示JMS用戶端和伺服器端之間的一個活動的連接配接,是由用戶端通過調用連接配接工廠的方法建立的。

3)JMS會話。JMS會話(Session)表示JMS客戶與JMS伺服器之間的會話狀态。JMS會話建立在JMS連接配接上,表示客戶與伺服器之間的一個會話線程。

4)JMS目的。JMS目的(Destination),又稱為消息隊列,是實際的消息源。

5)JMS生産者和消費者。生産者(MessageProducer)和消費者(Message Consumer)對象由Session對象建立,用于發送和接收消息。

6)JMS消息通常有兩種類型:

①點對點(Point-to-Point)。在點對點的消息系統中,消息分發給一個單獨的使用者。點對點消息往往與隊列(javax.jms.Queue)相關聯。

②釋出/訂閱(Publish/Subscribe)。釋出/訂閱消息系統支援一個事件驅動模型,消息生産者和消費者都參與消息的傳遞。生産者釋出事件,而使用者訂閱感興趣的事件,并使用事件。該類型消息一般與特定的主題(javax.jms.Topic)關聯。

<a href="http://s3.51cto.com/wyfs02/M02/8C/39/wKioL1hl8dCieJyPAABaRWxzapw545.jpg" target="_blank"></a>

Java消息服務應用程式結構支援兩種模型(點對點或隊列模型;釋出者/訂閱者模型):

在點對點或隊列模型下(一個生産者向一個特定的隊列釋出消息,一個消費者從該隊列中讀取消息。這裡,生産者知道消費者的隊列,并直接将消息發送到消費者的隊列。這種模式被概括為:隻有一個消費者将獲得消息;生産者不需要在接收者消費該消息期間處于運作狀态,接收者也同樣不需要在消息發送時處于運作狀态;每一個成功處理的消息都由接收者簽收);

釋出者/訂閱者模型(支援向一個特定的消息主題釋出消息。0或多個訂閱者可能對接收來自特定消息主題的消息感興趣。在這種模型下,釋出者和訂閱者彼此不知道對方。這種模式好比是匿名公告闆。這種模式被概括為:多個消費者可以獲得消息;在釋出者和訂閱者之間存在時間依賴性,釋出者需要建立一個訂閱(subscription),以便客戶能夠訂閱,訂閱者必須保持持續的活動狀态以接收消息,除非訂閱者建立了持久的訂閱,在那種情況下,在訂閱者未連接配接時釋出的消息将在訂閱者重新連接配接時重新釋出);

使用Java語言,JMS提供了将應用與提供資料的傳輸層相分離的方式。同一組Java類可以通過JNDI中關于提供者的資訊,連接配接不同的JMS提供者。這一組類首先使用一個連接配接工廠以連接配接到隊列或主題,然後發送或釋出消息。在接收端,客戶接收或訂閱這些消息。

JMS有兩種傳遞消息的方式,标記為NON_PERSISTENT的消息最多投遞一次,而标記為PERSISTENT的消息将使用暫存後再轉送的機理投遞,如果一個JMS服務離線,那麼持久性消息不會丢失但是得等到這個服務恢複聯機時才會被傳遞,是以預設的消息傳遞方式是非持久性的,即使使用非持久性消息可能降低内務和需要的存儲器,并且這種傳遞方式隻有當你不需要接收所有的消息時才使用;

雖然JMS規範并不需要JMS供應商實作消息的優先級路線,但是它需要遞送加快的消息優先于普通級别的消息,JMS定義了從0到9的優先級路線級别,0是最低的優先級而9則是最高的,更特殊的是0到4是正常優先級的變化幅度,而5到9是加快的優先級的變化幅度。舉例來說:topicPublisher.publish (message, DeliveryMode.PERSISTENT, 8, 10000);//Pub-Sub 或 queueSender.send(message,DeliveryMode.PERSISTENT, 8, 10000);//P2P  這個代碼片斷,有兩種消息模型,映射遞送方式是持久的,優先級為加快型,生存周期是10000 (以毫秒度量)。如果生存周期設定為零,這則消息将永遠不會過期。當消息需要時間限制否則将使其無效時,設定生存周期是有用的。

JMS定義了五種不同的消息正文格式,以及調用的消息類型,允許你發送并接收以一些不同形式的資料,提供現有消息格式的一些級别的相容性。

· StreamMessage -- Java原始值的資料流

· MapMessage--一套名稱-值對

· TextMessage--一個字元串對象

· ObjectMessage--一個序列化的 Java對象

· BytesMessage--一個未解釋位元組的資料流

JMS程式設計模型:

ConnectionFactory 接口(連接配接工廠,使用者用來建立到JMS提供者的連接配接的被管對象,JMS客戶通過可移植的接口通路連接配接,這樣當下層的實作改變時,代碼不需要進行修改,管理者在JNDI名字空間中配置連接配接工廠,這樣,JMS客戶才能夠查找到它們。根據消息類型的不同,使用者将使用隊列連接配接工廠QueueConnectionFactory,或者主題連接配接工廠TopicConnectionFactory,可以通過JNDI來查找ConnectionFactory對象);

Connection 接口(連接配接,連接配接代表了應用程式和消息伺服器之間的通信鍊路(對TCP/IP socket的包裝),在獲得了連接配接工廠後,就可以建立一個與JMS提供者的連接配接,根據不同的連接配接類型,連接配接允許使用者建立會話,以發送和接收隊列和主題到目标;Connection可以産生一個或多個Session。跟ConnectionFactory一樣,Connection也有兩種類型:QueueConnection和TopicConnection);

Destination 接口(目标,目标是一個包裝了消息目标辨別符的被管對象,消息目标是指消息釋出和接收的地點,或者是隊列Queue,或者是主題Topic,JMS管理者建立這些對象,然後使用者通過JNDI發現它們,和連接配接工廠一樣,管理者可以建立兩種類型的目标,點對點模型的隊列,以及釋出者/訂閱者模型的主題);

Session 接口(會話,表示一個單線程的上下文,用于發送和接收消息,由于會話是單線程的,是以消息是連續的,就是說消息是按照發送的順序一個一個接收的,會話的好處是它支援事務,如果使用者選擇了事務支援,會話上下文将儲存一組消息,直到事務被送出才發送這些消息,在送出事務之前,使用者可以使用復原操作取消這些消息,一個會話允許使用者建立消息,生産者來發送消息,消費者來接收消息;Session是我們操作消息的接口,可以通過session建立生産者、消費者、消息等,Session提供了事務的功能,當我們需要使用session發送/接收多個消息時,可以将這些發送/接收動作放到一個事務中,同樣,也分QueueSession和TopicSession);

MessageConsumer 接口(消息消費者,由會話建立的對象,用于接收發送到目标的消息,消費者可以同步地(阻塞模式),或(非阻塞)接收隊列和主題類型的消息;消息消費者由Session建立,用于接收被發送到Destination的消息,兩種類型:QueueReceiver和TopicSubscriber,可分别通過session的createReceiver(Queue)或createSubscriber(Topic)來建立,當然,也可以session的creatDurableSubscriber方法來建立持久化的訂閱者);

MessageProducer 接口(消息生産者,由會話建立的對象,用于發送消息到目标,使用者可以建立某個目标的發送者,也可以建立一個通用的發送者,在發送消息時指定目标;消息生産者由Session建立,并用于将消息發送到Destination,同樣,消息生産者分兩種類型:QueueSender和TopicPublisher,可以調用消息生産者的方法(send或publish方法)發送消息);

Message 接口(消息,是在消費者和生産者之間傳送的對象,也就是說從一個應用程式傳送到另一個應用程式,一個消息有三個主要部分:消息頭(必須,包含用于識别和為消息尋找路由的操作設定);一組消息屬性(可選,包含額外的屬性,支援其他提供者和使用者的相容,可以建立定制的字段和過濾器(消息選擇器));一個消息體(可選,允許使用者建立五種類型的消息(文本消息,映射消息,位元組消息,流消息和對象消息);消息接口非常靈活,并提供了許多方式來定制消息的内容);

MessageListener消息監聽器(如果注冊了消息監聽器,一旦消息到達,将自動調用監聽器的onMessage方法,EJB中的MDB(Message-Driven Bean)就是一種MessageListener);

要使用Java消息服務,你必須要有一個JMS提供者,管理會話和隊列(既有開源的提供者也有專有的提供者):

開源的提供者包括:Apache ActiveMQ、JBoss 社群所研發的 HornetQ、Joram、Coridan的MantaRay、The OpenJMS Group的OpenJMS;

專有的提供者包括:BEA的BEA WebLogic Server JMS、TIBCOSoftware的EMS、GigaSpaces Technologies的GigaSpaces、Softwired2006的iBus、IONA Technologies的IONA JMS、SeeBeyond的IQManager(2005年8月被Sun Microsystems并購)、webMethods的JMS+ -、my-channels的Nirvana、Sonic Software的SonicMQ、SwiftMQ的SwiftMQ、IBM的WebSphere MQ;

注:

JNDI,Java Naming and Directory Interface,Java命名和目錄接口,是SUN公司提供的一種标準的Java命名系統接口,JNDI提供統一的用戶端API,通過不同的通路提供者接口JNDI服務供應接口(SPI)的實作,由管理者将JNDI API映射為特定的命名服務和目錄系統,使得Java應用程式可以和這些命名服務和目錄服務之間進行互動;目錄服務是命名服務的一種自然擴充,兩者之間的關鍵差别是目錄服務中對象不但可以有名稱還可以有屬性(例如,使用者有email位址),而命名服務中對象沒有屬性;

叢集JNDI實作了高可靠性JNDI,通過伺服器的叢集,保證了JNDI的負載平衡和錯誤恢複,在全局共享的方式下,叢集中的一個應用伺服器保證本地JNDI樹的獨立性,并擁有全局的JNDI樹,每個應用伺服器在把部署的服務對象綁定到自己本地的JNDI樹的同時,還綁定到一個共享的全局JNDI樹,實作全局JNDI和自身JNDI的聯系;

JNDI是一個應用程式設計的API,為開發人員提供了查找和通路各種命名和目錄服務的通用、統一的接口,類似JDBC都是建構在抽象層上,現在JNDI已經成為J2EE的标準之一,所有的J2EE容器都必須提供一個JNDI的服務;

JNDI可通路的現有的目錄及服務有:DNS、XNam 、Novell目錄服務、LDAP(LightweightDirectory Access Protocol)、CORBA對象服務、檔案系統、Windows XP/2000/NT/Me/9x的系統資料庫、RMI、DSMLv1&amp;v2、NIS;

JNDI優點(包含了大量的命名和目錄服務,使用通用接口來通路不同種類的服務;可以同時連接配接到多個命名或目錄服務上;建立起邏輯關聯,允許把名稱同Java對象或資源關聯起來,而不必知道對象或資源的實體ID);

JNDI程式包(javax.naming命名操作;javax.naming.directory目錄操作;javax.naming.event在命名目錄伺服器中請求事件通知;javax.naming.ldap提供LDAP支援;javax.naming.spi允許動态插入不同實作);

利用JNDI的命名與服務功能來滿足企業級API對命名與服務的通路,諸如EJB、JMS、JDBC 2.0以及IIOP上的RMI通過JNDI來使用CORBA的命名服務;

JNDI架構提供了一組标準的獨立于命名系統的API,這些API建構在與命名系統有關的驅動之上,這一層有助于将應用與實際資料源分離,是以不管應用通路的是LDAP、RMI、DNS、還是其他的目錄服務;換句話說,JNDI獨立于目錄服務的具體實作,隻要有目錄的服務提供接口(或驅動),就可以使用目錄;

關于JNDI要注意的重要一點是,JNDI提供了應用程式設計接口API(application programming interface,API提供了Java應用程式通路各種命名和目錄服務的功能)和服務提供者接口SPI(service providerinterface,SPI提供了任意一種服務的提供者使用的功能),這一點的真正含義是,要讓應用與命名服務或目錄服務互動,必須有這個服務的JNDI服務提供者,這正是JNDI SPI發揮作用的地方,服務提供者基本上是一組類,這些類為各種具體的命名和目錄服務實作了JNDI接口——很像JDBC驅動為各種具體的資料庫系統實作了JDBC接口一樣;作為一個應用開發者,我們不必操心JNDI SPI的具體實作,隻需要确認要使用的每一個命名或目錄服務都有服務提供者;

用途(命名或目錄服務使使用者可以集中存儲共有資訊,這一點在網絡應用中是重要的,因為這使得這樣的應用更協調、更容易管理,例如,可以将列印機設定存儲在目錄服務中,以便被與列印機有關的應用使用;我們大家每天都不知不覺地使用了命名服務,命名系統中的對象可以是DNS記錄中的名稱、應用伺服器中的EJB元件(Enterprise JavaBeans Component)、LDAP(LightweightDirectory Access Protocol)中的使用者Profile;目錄服務是命名服務的自然擴充,兩者之間的關鍵差别是目錄服務中對象可以有屬性(例如,使用者有email位址),而命名服務中對象沒有屬性,是以在目錄服務中,你可以根據屬性搜尋對象,JNDI允許你通路FS中的檔案,定位遠端RMI注冊的對象,通路像LDAP這樣的目錄服務,定位網絡上的EJB元件,

對于象LDAP用戶端、應用launcher、類浏覽器、網絡管理實用程式,甚至位址薄這樣的應用來說,JNDI是一個很好的選擇);

安裝:

#groupadd weblogic

#passwd weblogic

#useradd -g weblogic weblogic   #(weblogic會自動提示使用普通使用者安裝)

#chown -R weblogic.weblogic /home/weblogic

#vim /etc/profile.d/java   #(安裝配置jdk及環境變量)

export JAVA_HOME=/usr/java/jdk1.8.0_51

export PATH=$PATH:$JAVA_HOME/bin

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#. !$

#java -jar fmw_12.1.3.0.0_wls.jar

安裝目錄--&gt;安裝類型(Weblogic Server)--&gt;條件檢查頁面(安全更新頁面,選“我不希望收到有關配置”,點繼續--&gt;安裝概要頁面--&gt;安裝進度頁面--&gt;配置向導頁面--&gt;設定管理者賬号--&gt;域模式(選“開發”)和JDK(weblogic自動識别系統已配置的JDK)--&gt;進階配置頁面(選“管理伺服器”)--&gt;管理伺服器頁面(預設)--&gt;概要配置頁面(顯示域配置資訊)--&gt;配置成功頁面

#cd /home/weblogic/Oracle_Home/user_projects/domains/base_domain/bin

#nohup ./startWeblogic.sh &amp;   #(admin server啟動)

#nohup ./startManagedWeblogic.sh &lt;server_name&gt; &lt;t3://admin_ip:admin_port&gt; &amp;   #(managed server啟動)

#./stopManagedWeblogic.sh   #(停止時,先停managed server,再停adminserver)

#./stopWeblogic.sh

注:若在console啟動managed server,必須配置NodeManager程序和Machine元件,并将console中的Managed Server Target對應到Machine中;一般在3台以上主機組成的Domain中,盡量少用Machine配置,減少配置層次有利于系統的穩定;console中停止所有Server,shutdown有兩種:when work completes和Force Shutdown Now

http://IP:7001/console

配置JMS factory和queue:

Services--&gt;Messaging--&gt;JMS Servers--&gt;New(Create a New JMS Server,輸入Name:test_JMSServer-0)--&gt;Createa New Store(Type:file store,輸入Name)--&gt;finish

Services--&gt;Messaging--&gt;JMS Modules--&gt;New(輸入名稱,Next)--&gt;選擇server,Next--&gt;finish

Services--&gt;Messaging--&gt;JMS Modules--&gt;New--&gt;New--&gt;選擇Connection factory--&gt;Next--&gt;填Name,JNDI Name--&gt;next--&gt;finish

New--&gt;選Queue--&gt;Next--&gt;填Name,JNDI Name--&gt;next--&gt;Create a New Subdeployment--&gt;填SubdeploymentName--&gt;OK--&gt;選中JMS servers--&gt;finish

左側導航欄,點Activate changes

spring JMS配置:

1、jndi模闆;2、連接配接工廠;3、發送隊列;4、消息轉換;5、JMS template;6、接收隊列;

1、Jndi模版

 &lt;!-- JNDI上下文模闆 --&gt;

 &lt;bean id="jndiTemplate"class="org.springframework.jndi.JndiTemplate"&gt;

 &lt;property name="environment"&gt;

 &lt;props&gt;

 &lt;!-- your weblogic url --&gt;

 &lt;propkey="java.naming.provider.url"&gt;t3://localhost:7001&lt;/prop&gt;

 &lt;prop key="java.naming.factory.initial"&gt;weblogic.jndi.WLInitialContextFactory&lt;/prop&gt;

 &lt;!--weblogic username and password --&gt;

 &lt;propkey="java.naming.security.principal"&gt;weblogic&lt;/prop&gt;

 &lt;propkey="java.naming.security.credentials"&gt;weblogic&lt;/prop&gt;

 &lt;/props&gt;

 &lt;/property&gt;

 &lt;/bean&gt;

  2、連接配接工廠

 &lt;!-- 連接配接工廠配置 --&gt;

 &lt;bean id="jmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"&gt;

 &lt;property name="jndiName"&gt;

 &lt;value&gt;ConnectionFactory&lt;/value&gt;

 &lt;property name="jndiTemplate"&gt;

 &lt;ref bean="jndiTemplate" /&gt;

  3、發送隊列  &lt;!-- 發送隊列配置 --&gt;

 &lt;bean id="destinatinForSender"class="org.springframework.jndi.JndiObjectFactoryBean"&gt;

 &lt;value&gt;Queue&lt;/value&gt;

  4、消息轉換

 &lt;!-- JMS 簡單消息轉換 --&gt;

 &lt;bean id="jmsConverter"  class="org.springframework.jms.support.converter.SimpleMessageConverter"/&gt; 5、JMS template配置

 &lt;!-- JMS template配置 --&gt;

 &lt;bean id="jmsTemplateSender" class="org.springframework.jms.core.JmsTemplate"&gt;

 &lt;property name="connectionFactory"&gt;

 &lt;ref bean="jmsConnectionFactory" /&gt;

 &lt;property name="defaultDestination"&gt;

 &lt;ref bean="destinatinForSender" /&gt;

 &lt;property name="messageConverter"&gt;

  &lt;refbean="jmsConverter" /&gt;

  6、接受隊列配置

 &lt;!-- 接收隊列配置 --&gt;

 &lt;bean id="destinatinForReceiver" class="org.springframework.jndi.JndiObjectFactoryBean"&gt;

 &lt;bean id="jmsTemplateReceiver"class="org.springframework.jms.core.JmsTemplate"&gt;

weblogic:

一、

1、install;

2、learn how to createa new custom domain template:

create a customized domain template usingthe domain template builder so as to have the flexibiligty for creating domainsfor multiple developmentor,test and production environments.

<a href="http://www.oracle.com/us/corporate/acquisitions/bea/index.html" target="_blank">http://www.oracle.com/us/corporate/acquisitions/bea/index.html</a>

3、create a new domainusing the custom domain template,using the administration console:

a domain is the basic administration unitfor weblogic server;

a domain always includes one weblogicserver instance that is configured as an administration server;

all other optional weblogic serverinstances in a domain one called managed servers;

the J2EE architecture:

<a href="http://s5.51cto.com/wyfs02/M00/8C/3C/wKiom1hl8qWBpEPiAADJ9Qt6vyU175.jpg" target="_blank"></a>

二、

using the administration console

建立machine:

configuring machine(the administration server uses the machine definition with the node manager application to start remote weblogic server instances; is a computer that hosts weblogic servers);

建立managed server:

configuring managed servers(managed servers can be configured using:domain;configuration wizard;administration console;command line(WLST,weblogic scripting tool));

釋出應用

檢視日志

use sample domain:wl_server

三、

using weblogic scripting tool,WLST

command line tools are useful(for automating administration using scripts;as an alternative to the administration console);

WLST provides a command line interface that:configures WLS instance and domains;manages and persists WLS configuration changes;

WLST enables you to:retrieve domain configuration and run-time information;edit the domain configuration and persist the changes in config.xml;automate configuration tasks and application deployment;

simplified command-line access:WLST includes the capabilities of (weblogic Admin(depecated in 9.X); weblogic deployer; wlconfig Ant tasks; configuration wizard(silent mode));

it allows you to navigate the WLS MBeantree like a filesystem;

to access WLST(in a non-secure environment,use:java weblogic WLST);

to access WLST(in a secure environment,use:java -Dweblogic.security.SSL.ignoreHostnameVerification=true-Dweblogic.security.TrustKeyStore=DemoTrustweblogic.WLST);

WLST Command requirements:

use causes sensitive names and arguments of commands;

use arguments enclosed in single or doublequotes;

precede the quoted string by r while specifying backslash in s string(example: read Template(r'c:\mytemplate.jar'));

note these invalid characters in objectnames while using WLST offline:

period(.);

forward slash(/);

backward slash(\);

you cannot access security information through WLST while updating a domain;

display help,example:wls:/mydomain/serverConfig&gt;help('disconnect')

四、

釋出

五、

in weblogci 10.0, a server instance need not be bound to a single network address,or a single port number/secure port,a network channel provides this functionality. a network channel is a configurable resource that defines the attributes of a network connection to weblogic server;

a network channel can define:

the protocol the connection supports;

the listen address;

the listen ports for secure and non-secure communication;

connection properties such as the login timeout value and maximum message sizes;

whether or not the connection supports tunneling;

whether the connection can be used to communicate with other weblogic server instances in the domain,or used only for communication with clients;

to configure a network channel:

select the server to which you want to configure network channels;

select the protocols tab;

select the channels tab;

click New;

Enter the general configuration values forthe new network channel;

click Save and Activate Changes;

snmp:

weblogic server provides the ability to communicate with enterprise-wide management systems using simple Network Management Protocol(SNMP) and enables you to integrate the management of weblogic servers into an SNMP-compliant management system to give you a single view of the various software and hardware resources of your entire system;

SNMP traps provide a notification mechanism where by an SNMP agent,such as weblogic administration server, can notify an SNMP manager when an event of interest has taken place.

As you will see in this lab,weblogic server provides serval predefined traps for server strartup and shutdown

六、

JNDI

the java naming and directory interface isan API for accessing different naming and directory services uniformly;

this is a major step forward because:

different services use vastly different naming schemes,java applications will be able to navigate seamlessly across databases,files,directories,objects and networks;

JNDI comes with two interfaces:

application programing interface(API),youcan use the API in an application to access a naming and directory service;

the service provider interface(SPI),you canuse the SPI to program a new service to be used as a naming and directory service;

in weblogic server,JNDI servers as a respository and lookup service for J2EE objects including:

EJB homestubs;

JDBC datasources;

JMS connection factories,queues and topics;

RMI stubs;

JNDI strucuture:

<a href="http://s5.51cto.com/wyfs02/M02/8C/39/wKioL1hl9JbAt0ynAAB8j-u2590397.jpg" target="_blank"></a>

JNDI tree:

<a href="http://s3.51cto.com/wyfs02/M02/8C/3C/wKiom1hl9KKQP7b1AABw2fPzpoM142.jpg" target="_blank"></a>

contexts and subcontexts:

subcontexts are referenced through dot delimiters(.);

subcontexts must be created before objectsare placed into them;

typicaly when objects are bound to the JNDI tree,subcontexts are automatically created based on the JNDI name;

for example:

com.bea.examples

com.bea.examples.ejb

com.bea.examples.ejb.SomeObject

JNDI for administrators:

administrators need to understand JNDI because it will be their job to:

verify objects are bound in the JNDI tree;set security on contexts within the JNDI tree;

as an administrator you may be wondering why you need to understand about JNDI,however,you will be respon sible for verifying that an object was bound into the JNDI tree and setting security within the JNDI tree;

listing JNDI contents:

WLST providers a command line utility forviewing JNDI binding;

jndi() changes to the jndi tree and ls()list the bindings;

&gt;java D:\bea\user_projects\domains\bbk\bin\weblogic.WLST

&gt;connect("weblogic","weblogic","t3://localhost:7001")

&gt;jndi()

&gt;cd('AdminServer')

&gt;ls()

module review:

in this module we discussed:

naming and directory services; thehigh-level architecture of JNDI;

terminology used in naming and directoryservices;

how to view the JNDI tree in weblogicserver;

七、

startup and shutdown classes

road map:

what are startup and shutdown classes andhow do they work;

deploying a startup or shutdown class using the administration console;

a startup class is a class that is loaded and executed when weblogic server boots;

you can use a startup class to:

initialize objects in memory;

reconstruct a JNDI tree;

load critical values from the database;

recover the system to the state that existed before shutdown;

a shutdown class is a class that gets executed when weblogic server is shutting down; shutdown classes are usually used to free resources obtained by startup classes;

when are startup classes loaded? by default, startup classes are loaded after the J2EE deployment units;

J2EE deployment units load in this order:JDBC,JMS,connectors,EJBs,web application;

if "run before application deployments" is checked ,then startup class are loaded right before deploying JDBC Data Sources;

八、

JMS, java message service

setting up JMS application:

at the end of this module, you will be able to:

understand how weblogic server JMS is implemented;

configure JMS administrator objects using the administration console;

configure persistent messages;

use the WLS administration console tominitor JMS;

(1)

weblogic server JMS administration;

messaging fundamental;

point to point(PTP) and publish-subscribe(pub/sub)domains;

configuring JMS objects;

fine-tuning WLS JMS;

PTP queue:

many producers can serialize message to multiple receivers in a queue;

注:message are delivered to one client

<a href="http://s5.51cto.com/wyfs02/M02/8C/39/wKioL1hl9VSiZWDUAABTRAPqhas375.jpg" target="_blank"></a>

pub/sub topics:

publishing and subscribing to a topic decouples producers from consumers;

注:message are delivered to more than on client

<a href="http://s4.51cto.com/wyfs02/M02/8C/3C/wKiom1hl9WPz5wCOAABkKyk9Low188.jpg" target="_blank"></a>

weblogic server JMS features:

PTP and pub/sub domain;

guaranteed and transactional message delivery;

durable subscribers;

distributed destinations;

recovery from failed servers;

JMS architecture:

connecting

注:to send messages,these are required: connection; session;destination;

<a href="http://s3.51cto.com/wyfs02/M02/8C/39/wKioL1hl9XaAdGTKAABtXb8A_p4136.jpg" target="_blank"></a>

JMS resources:

JMS resources are managed as either system modules or application modules:

<a href="http://s2.51cto.com/wyfs02/M00/8C/39/wKioL1hl9YHgPg3vAABKArrKxXg872.jpg" target="_blank"></a>

raod map:

(2)

configuring persistent messaging:

persistent and non-persistent messages;

persistent backing stores using theconsole;

durable subscriptions;

durable subscriptions using the console;

how a durable subscription works:

if a subscriber client is active,messageare delivered normally;

when the client becomes active again,its IDis used to retrieve and redeliver messages.

<a href="http://s3.51cto.com/wyfs02/M00/8C/3C/wKiom1hl9Y7SDbU5AACF8bXFXkM716.jpg" target="_blank"></a>

configure a durable subscription:

to configure durable subscriptions,anadministrator must:

create and configure a JMS store;

configure connection factories or destinationsas persistent;

associate the JMS store with the JMSserver;

the JMS store can be configured to use either:

a file store;

a JDBC store(a connection pool);

(3)

monitoring JMS in WLS:

using the administration console to track JMS statistics

九、

JMS topic操作

十、

transactions

configuring and monitoring transactions:

configuing transactions;monitoring transaction;the transaction log;

a transaction is a mechanism to handle groups of operations as though they were one;

either all operations in a transaction occur or none at all;

operations involved in a transaction might rely on multiple servers and databases;

ACID properties of a transaction:

a transaction is formally defined by the set of properties known by the acronym ACID:

Atomicity (a transaction is done or undone completely,in the event of afailure,all operations and procedures are undone and all data rolls back to its previous state);

Consistency (a transaction transforms a system from one consistent state to another consistent state);

Isolation (each transaction occurs independently of other transactions occurring at the same time);

Durability (completed transactions remain permanent,even during system failure);

transferring without transactions:

A(successful transfer);

B(unsuccessful transfer,account are left is an inconsistent state);

<a href="http://s1.51cto.com/wyfs02/M01/8C/3C/wKiom1hl9Z7gcjTpAABZV6cvwM4239.jpg" target="_blank"></a>

the two-phase commit protocol:

the two-phase commit(2PC) protocol uses two steps to commit changes within a distributed transation:

phase 1 asks RMs to prepare to make the changes;

phase 2 asks RMs to commit and make the changes permanent,or to rollback the entire transaction;

a global transaction ID(XID) is used to track all changes associated with a distributed transaction.

extended architecture protocol(XA):

is the interface used between WLS and RMs;

implements the 2PC protocol;

allows programs to control RMs that are involed in distributed transactions;

transaction and resource managers:

a transaction manager coordinates multiple resource managers;

the 2PC protocol is used to coordinate the transaction;

the XA protocol implements 2PC;

<a href="http://s2.51cto.com/wyfs02/M01/8C/39/wKioL1hl9aiAGKlHAACDh7OEzF4698.jpg" target="_blank"></a>

java transaction API(JTA):

WLS uses JTA to implement and managetransaction;

WLS JTA provides the following support:

it creates a unique transaction identifier(XID);

it supports an optional transaction name;

it tracks objects involved in transactions;

it notifies database of transactions;

it orchestrates 2PC using XA;

it executes rollbacks;

it executes automatic recovery procedures when failure;

it manages time-outs;

configuing the transaction log:

each server has a transaction log that stores informantion about committed transactions coordinated by the server that may not have been completed,weblogic server uses the transaction log when recovering from system crashes or network failures;

you cannot directly view the transaction log as the records are in a binary format;

T-log files must be migrated if migratingto a new machine;

transacted messaging:

a JMS client can use JTA to participate ina distributed transaction;

alternatively,a JMS client can demarcate transactions local to the JMS session through a transacted session;

participation in a transaction is optional;

十一、

managing users and groups

本文轉自 chaijowin 51CTO部落格,原文連結:http://blog.51cto.com/jowin/1887652,如需轉載請自行聯系原作者