<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks
    TUXEDO應用系統的配置

    3.1 TUXEDO應用系統的常見配置

    配置文件UBBCONFIG介紹
    一個TUXEDO應用系統的所有資源都在一個文本文件中進行定義,該文件稱為UBBCONFIG,在配置完成后,UBBCONFIG被編譯成一個二進制的文件TUXCONFIG.在TUXEDO系統啟動時,從該文件中讀取系統的配置信息。 UBBCONFIG文件類似WINDOWS下的*.INI文件。它包括以下9大部分, 我們稱之為節,RESOURCES,MACHIENS,GROUPS
    這三個節必須的,其他的節是可選的。

    RESOURCES(必需): 與整個系統有關的配置信息
    MACHINES(必需): 一個TUXEDO應用系統可以跨越多臺服務器,在該節中配置與每臺服務
    器有關的信息
    GROUPS(必需): TUXEDO中的服務可被分為多個組,在該節中配置與組有關的信息
    SERVERS(可選): 與SERVER有關的信息在該節配置
    SERVICES(可選): 與SERVICES有關的信息在該節配置
    NETWORK(可選):與網絡有關的信息在該節配置
    ROUTING(可選) :路由規則在該節配置
    NETGROUPS(可選):與網絡分組有關的信息在該節配置

    名稱解釋:
    TUXEDO應用系統
    一個TUXEDO應用系統包括服務端,客戶端,服務端安裝在服務器上,客戶端一般安裝在PC機上,從開發角度看,一個TUXEDO應用系統包括服務端程序,客戶端程序,一個配置文件。此外,一個TUXEDO應用系統可以部署在一臺服務器上,也可以部署在多臺服務器上。
    SERVER:
    服務端程序用C或COBAL編寫,每一個程序文件編譯成一個相應可執行文件,該可執行文件在運行時稱為SERVER,它實際上就是一個進程。每個 SERVER都有一個名字,也就是該進程的名字。為與TUXEDO應用系統的服務端區分,我們在本書中,我們用SERVER表示該進程,用服務端表示 TUXEDO應用系統的服務端。
    SERVICE:
    在每個服務端程序中,主要是一個個的函數,在TUXEDO中稱這些函數為SERVICE,一般
    也稱之為服務。在該SERVICE中實現業務邏輯,在客戶端中調用這些SERVICE來實現各
    種操作,如在前面的例子simpapp中, 服務端程序為simpserv.c,它編譯成可執行文件
    simperv, simpserv就是一個SERVER,該SERVER包括SERVICE:TOUPPER。


    下面我們給出一個配置文件的例子:
    *RESOURCES
    IPCKEY 123456
    MASTER simple
    UID 0
    GID 0
    PERM 0666
    MAXACCESSERS 100
    DOMAINID simpapp
    MODEL SHM
    LDBAL Y
    SCANUNIT 10
    SANITYSCAN 12
    BLOCKTIME 6
    NOTIFY DIPIN
    MAXCONV 10

    *MACHINES
    "MYSYS" LMID="simple"
    TUXCONFIG="d:\tuxdemo\pbdemo\tuxconfig"
    TUXDIR="d:\tuxedo65"
    APPDIR="d:\tuxdemo\pbdemo"
    TLOGDEVICE="d:\tuxdemo\pbdemo\TLOG"
    TLOGNAME="TLOG"
    TLOGSIZE=100
    MAXWSCLIENTS=5
    CMPLIMIT="MAXLONG,MAXLONG"
    NETLOAD=0
    SPINCOUNT=0
    MAXACLCACHE=100

    *GROUPS
    "GROUP1" LMID="simple" GRPNO=1
    OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=600+MaxCur=5+LogDir=."
    TMSNAME="TMS_ORA8i"
    TMSCOUNT=2

    *SERVERS
    DEFAULT:
    CLOPT="-A"
    "simpserv" SRVGRP="GROUP1" SRVID=1
    CLOPT="-A"
    RQADDR="simpserv"
    RQPERM=0660 REPLYQ=Y RPPERM=0660 MIN=5 MAX=5 CONV=N
    MAXGEN=1 GRACE=86400 RESTART=N
    "WSL" SRVGRP="GROUP1" SRVID=1116
    CLOPT="-A -- -n //MYSERVER:8888 -m 2 -M 5 -x 6"
    *SERVICES
    "TOUPPER"
    LOAD=50 PRIO=50
    BUFTYPE="ALL"
    TRANTIME=30
    AUTOTRAN=N

    *ROUTING

    各節之間的包含關系:
    從上到下,是一對多的關系,即:一個TUXEDO系統可以跨越多臺服務器,一臺服務器上可以有多個GROUP,但一個GROUP只能在一臺服務器上,一個GROUP中可以有多個SERVER,一個SERVER中可以有多個SERVICE。


    下面我們分別對每個節種具體的常見配置進行說明,NETWORK,NETGROUP,ROUTING三節及其他比較高級的配置我們在后面的內容中說明

    RESOURCES(必需):
    該節是必須的,在這里配置與整個TUXEDO應用系統有關的信息,主要包括:
    IPCKEY: TUXEDO使用它標識公告板及其他的IPC資源。它不能與該服務器上其他的IPC資源的ID號沖突范圍:32,769-262,142
    MASTER: 指定該TUXEDO應用系統的MASTER服務器,在該服務器上對整個TUXEDO系
    統進行管理配置,可以為該MASTER服務器指定一臺備份服務器,當該MASTER
    服務器當機時,可從BACKUP服務器上進行管理。在進行系統遷移時,也要指定
    BACKUP服務器。
    DOMAINID:該TUXEDO應用系統的唯一標識

    UID, GID, PERM:這三個參數控制對系統IPC資源的存取權限
    UID: 可對該TUXEDO應用系統進行管理的TUXEDO系統管理員的用戶ID,在UNIX下
    就是UNIX系統的用戶ID,默認為執行TMLOADCF的用戶的ID。在NT下該設置
    沒有用,要設為0。
    GID: 在UNIX下為UID中所指定的用戶所在的組ID,在NT下該設置沒有用,要設為0
    PERM: 指定對TUXEDO系統IPC資源的存取權限。默認值為0666,即任何人都可以對該IPC資源進行存取。

    MAXACCESSERS,MAXSERVERS,MAXSERVICES:這三個參數控制該TUXEDO應用系統對IPC資源的使用情況。

    MAXACCESSERS: 在本系統的一個節點(一臺服務器)上,同時可以有多少個進程可以訪問
    該TUXEDO系統的公告板,默認值為50,它包括本地客戶端進
    程,SERVER進程,但不包括管理進程如:BBL,DBBL等
    MAXSERVERS: 在本系統中,總共可以有多少個SERVER存在,包括進行管理的SERVER,
    如:BBL,TMS等。默認值為50。
    MAXSERVICES: 在本系統中,總共可以有多少個SEVICE存在, 默認值為100。



    TUXEDO應用系統的部署方式:
    一個TUXEDO應用系統可能部署在一臺服務器上或多臺服務器上,也可能是部署在共用一塊全局共享內存的幾臺服務器上,可在MODEL,OPTIONAS中配置該TUXEDO應用系統的部署模式。
    MODLE:
    SHM: 單機或多臺服務器但共用一個全局共享內存
    MP: 多臺服務器但沒有共用一個全局共享內存

    OPTION: LAN: 是多機(MP)部署模式
    MIGRATE: 可對該系統進行遷移


    TUXEDO的管理進程BBL定時對它所在的服務器上的TUXEDO系統進行檢查,檢查超時的事務,超時的客戶端連接等。
    SCANUNIT: 指定檢查的最小時間單位,它單位為秒,必須是5的倍數。 默認值為10,即10
    秒。
    SANTIYSCAN: 每隔多少個SCANUNIT檢查一次, SANITYSCAN*SCANUNIT不能大于
    300秒。默認值為12,即120秒
    BLOCKTIME: 指定一個消息可以阻塞多長時間,如果過了SANITYSCAN*SCANUNIT秒該
    消息還沒有發送出去,將超時出錯。 SANITYSCAN*SCANUNIT不能大于
    32767秒。默認值為6,即60秒。

    同步調用的超時說明
    對同步調用TPCALL,指從TPCALL()開始調用,到SERVER端的返回結果到到該客戶端并寫到輸入緩沖區這一段時間。包括:
    客戶端開始調用TPCALL()
    把數據通過網絡發送到SERVER端
    SERVER端的處理時間
    SERVER端把處理結果通過網絡返回給客戶端
    客戶端TPCALL()調用返回

    異步調用和會話方式的超時說明
    對異步調用和會話方式,當一個進程調用TPACALL(),TPCONNECT(),TPSEND()時,超時時間只包括如果接收隊列滿時,這些調用的等待時間,如在TPACALL()中,所調用的SERVICE的接收隊列如果滿了,那么TPACALL()可阻塞在那里,直到該隊列不滿,可以接收該 TPACALL()發送的請求。從TPACALL()開始阻塞到TPACALL()返回這段時間為它的超時時間。
    對TPGETRPLY(),TPRECV()的超時時間是指如果要接收的隊列為空時,它們應該阻塞在那里等待有消息到來的時間。
    如:超時時間為60秒, 一點整調用TPGETRPLY()從接收的隊列取消息,這時接收隊列為空,如果到了一點零一分該接受隊列還為空,那么TPGETRPLY()將超時出錯。

    LDBAL: 要不要進行負載均衡,Y:要,N:不要,默認值為不要

    MAXCONV: 在一臺服務器上最多可以有多少個會話同時存在。范圍:0-32768,默認值為10

    NOTIFY : 設置消息的通知方式,有以下3種:默認為DIPIN
    IGNORE: 該TUXEDO系統中的CLIENT不接收任何消息
    SIGNAL: 用SIGUSR1,SIGUSR2信號通知CLIENT有消息到來,如果在非UNIX平臺上設
    置采用該方式,那么會被自動轉化為DIPIN方式。
    DIPIN: 當CLIENT調用ATMI函數時,順便檢查看是否有消息,如果有就發送給該
    CLIENT默認值為DIPIN


    *MACHINES(必需):
    該TUXEDO應用系統所包含的每臺服務器都要在該節中進行配置
    LMID: 在TUXEDO,要為該應用系統中的每臺服務器指定一個邏輯服務器名。如在上面的例子中,TUXEDO應用服務器MYSYS對應的邏輯服務器名為:simple,
    TUXEDO應用服務器名的查看方法:
    1. 在UNIX下用uname -n 查看SERVER的名字,
    2. 在NT,WIN2000下用ECHO %COMPUTERNAME$查看SERVER的名字
    注意:如果SERVER的名字太長(>8)或含有“.”等可以" "引起來,如: "DEMOSERVER.COM"

    TUXCONFIG: 配置文件TUXCONFIG所在的路徑
    TUXDIR: TUXEDO的安裝目錄
    APPDIR: TUXEDO應用系統所在的目錄
    注意:TUXCONFIG,TUXDIR,APPDIR的值要與它們在環境變量中的設置的值一樣
    ENVFILE: 該服務器上與TUXEDO有關的環境變量(如FIELDTBLS等)可以放到一個文件中,在ENVFILE中指定該文件名。
    TYPE: 指定該服務器的類型,當兩臺服務器的TYPE不一樣時,在它們之間傳送數據時要進行
    編碼/解碼工作
    ULOGPFX: 指定ULOG文件所在的目錄及前綴。默認目錄為$APPDIR,前綴為ULOG。

    UID,GID,PERM,MAXACCESSERS,MAXCONV這些在RESOURCES中的配置,在MACHINES中可以被重新配置,并且這些新的配置值會覆蓋在RESOURCES中的配置值。


    *GROUPS(必需):
    在TUXEDO中,要對SERVER進行分組,配置GROUP主要有三個目的,
    1. 因為GROUP與數據庫之間是一對一的關系,在一TUXEDO應用系統中,如果有多個數據庫,就要配置多個GROUP,在該GROUP中配置TUXEDO與數據庫的連接參數等。
    2. 數據依賴路由是以GROUP為單位的。
    3. 進行系統遷移時也時以GROUP為單位的一個GROUP有一個名字,還有一個GROUP
    ID,GROUP的名字和GROUP ID在一個TUXEDO系統中必須唯一。
    每個GROUP要指定該GROUP所在的服務器,及它的ID號,如果該GROUP中的SERVER
    要與數據庫或其他的資源管理器相連,那么要在OPENINFO中設置連接的參數。具體的配置我們在講數據庫編程時再說明。
    *SERVERS:
    該系統所包含的所有的SERVER都在該節進行配置。
    在DEFAULT中的設置對所有的SERVER起作用。
    SRVGRP: 該SERVER所在的GROUP
    SRVID: 該SERVER所對應的ID,在一個GROUP中必須唯一
    MIN: 該SERVER最少啟動的進程數
    MAX: 該SERVER最多可啟動的進程數

    RESTART,RCMD,MAXGEN,GRACE: 在TUXEDO系統了,當一個SERVER進程因某中原因死掉時,可設置它可以自動重起,這4個參數指定TUXEDO的重起信息。
    RESTART 該進程死掉時是否可以自動重起,默認為N(不可以)
    GRACE,MAXGEN:在GRACE秒內,該進程最多可以重啟MAXGEN次。
    RCMD: 指定該SERVER重啟時,要執行的一個可執行文件名
    注意:
    1. 為了使一個SERVER可以自動重起,光設置了RESTART=Y還不夠,還要設置
    GRACE,MAXGEN才能在該SERVER死掉時,自動重起,
    2. 該SERVER能夠被自動重起的一個前提條件時它還沒有被從BULLITION BOARD中清
    除。
    例子:
    test SRVGRP=GROUP1 SRVID=1 RESTART=Y GRACE=100000 MAXGEN=255
    該設置指定在100000秒的時間內,SERVER進程:test可以啟動255次。
    在缺省情況下,TUXEDEO的每一個SERVER對應一個請求隊列,該SERVER從該請求隊列中取客戶端發來的請求,并把處理的結果通過該請求隊列返回給客戶端,TUXEDO的SERVER可以配置成多個SERVER對應一個請求隊列,即MSSQ方式,以提高響應的速度。
    與MSSQ有關的參數是:
    RQADDR:該請求隊列的名字,一般設成與該SERVER的名字一樣
    RAPERM:該請求隊列的存取權限,默認為0666
    REPLYQ:該SERVER中的某個SERVICE調用其他的SERVICE,并有返回結果,則應設置
    REPLYQ=Y,即把其他SERVICE的應答放到該隊列中

    CONV: 該SERVER是否采用會話(CONVERSATION)通訊方式,注意采用會話通訊方式的SERVICE要單獨在一個SERVER中,不能與采用其他通訊方式的SERVICE在同一個SERVER中,并且該SERVER要設置CONV=Y
    CLOPT: 指定該SERVER的啟動參數。默認為-A,即再該SERVER啟動時,發布該SERVER
    包含的所有的SERVICE。通用的有:
    -e: 指定錯誤輸出文件,默認為$APPDIR下的stderr
    -o: 指定標準輸出文件,默認為$APPDIR下的stdout
    -r: 記錄該SERVER中SERVICE每次調用的處理時間,并記錄在錯誤輸出文件中,然后可采用
    TUXEDO的性能分析工具txrpt對該SERVER進行性能分析。
    -A: 發布該SERVER包含的所有的SERVICE



    *SERVICES:
    在SERVICES中可針對每個SERVICE進行配置,主要有:
    AUTOTRAN: 調用該SERVICE時是否自動啟一個全局事務。默認為N
    LOAD:如果采用負載均衡,指定該SERVICE的負載因子,默認為50
    PRIO: 指定該SERVICE的優先級,默認為50
    DDR: 指定數據依賴路由規則

    與遠程客戶端有關的配置:
    1. 在MACHINES中要配置MAXWSCLIENTS,即最多可以有多少個遠程客戶端同時連接
    到該服務器上,在上面的例子中為5個
    2. 在SERVERS中要配置SERVER:WSL
    WSL SRVGRP="GROUP1" SRVID=1116 CLOPT="-A -- -n //192.168.120.113:8888 -m 2 -M 5 -x 6"
    說明:
    -n //192.168.120.113:8888: 遠程客戶端通過該端口與服務器建立連接
    -m 2 :最少啟動多少個WSH進程
    -M 5::最多啟動多少個WSH進程,默認值為MAXWSCLIENTS/m
    -x 6:每個WSH進程可同時處理多少個遠程客戶端
    3. 程客戶端所在的服務器上要配置WSNADDR環境變量,它的值為-n參數的值,如在上面的配置中為:
    SET WSNADDR= //192.168.120.113:8888

    配置文件UBBCONFIG的編譯:
    用下面的命令進行編譯:
    tmloadcf –y UBBCONFIG文件名
    如:下面的命令編譯名為ubbsimple的TUXEDO配置文件,生成二進制的配置文件
    TUXCONFIG
    tmloadcf –y ubbsimple

    有時候在改變了TUXCONFIG的目錄后,執行tmloadcf,會出現類似下面的錯誤,可把原來的TUXCONFIG文件刪除,然后再編譯。
    D:\simpdb>tmloadcf -y ubb
    CMDTUX_CAT:1601: ERROR: TUXCONFIG,TUXOFFSET d:\simpdb\tuxconfig 0 doesn't match first device entry on configuration d:\tuxdemo\simpdb\tuxconfig 0
    D:\simpdb>del tuxconfig
    D:\simpdb>tmloadcf -y ubb
    D:\simpdb>
    用tmunloadcf命令可對二進制的配置文件TUXCONFIG的進行反編譯
    如下面的命令反編譯TUXCONFIG,并把結果輸出到文件myubb中。通過反編譯TUXCONFIG可查看該TUXEDO應用系統的一些屬性默認值。
    Tmunloadcf >myubb




    3.2 多機(MP)模式的配置

    一個TUXEDO應用系統可以部署在多臺服務器上,這些服務器通過網絡連接,這種部署方式稱為MP方式,在這些服務器中要選擇一臺服務器做MASTER服務器,在該服務器上有一個DBBL進程,負責整個TUXEDO應用系統的管理工作。在每臺服務器上都有一個BBL進程,它與DBBL進程進行通信,管理各自服務器上的配置。每臺服務器上還有一個名為BRIDGE的進程和一個名為TLISTEN的進程,他們負責服務器之間的通訊。MP模式的結構如圖:




    如果配置了MP方式,那么在這些服務器之間可以做負載均衡和容錯,客戶端可以和其中的任何一臺服務器建立連接,如果該服務器上沒有該客戶端所要調用的服務(SERVICE),TUXEDO可以自動把請求發送到別的有該服務的機器取處理,并把結果返回個客戶端,如圖,SITE1上的客戶端調用了 TRANSFER,當在SITE1上沒有該SERVICE,在SITE3上有,
    那么SITE1通過BRIDGE把請求發送到SITE3上,SITE3把處理結果也通過BRIDGE發送到SITE1上,通過SITE1把結果返回給該客戶端。這些對客戶端時透明的。
    如果SITE1,STIE2,SITE3上都有TRANSFER,并且設置了負載均衡(LDBAL =Y),那么TUXEDO將根據他們的負載情況把請求發送到負載較小的服務器上。
    如果SITE1,SITE2,SITE3中的某一臺或兩臺服務器出故障了,那么正常的機器仍然能夠繼續運行,如果時他們之間的網絡連接斷了,BRIDGE進程會自動進行重試,并且在這些服務器之間可以配置多個網絡連接通路,當其中的一個出現故障時,會自動采用別的連接通路。
    所以MP方式提供了一個高可靠性的分布式應用系統。

    配置成MP方式的步驟:
    1. 這些服務器之間可以通過網絡互相訪問
    2. 在每臺服務器上都正確安裝了TUXEDO SERVER
    3. 應用已發布到這些服務器上
    4. 選擇一臺服務器做MASTER機,
    6. 在RESOURCES,MACHINES,NETWORK,NETGROUPS中做相應的配置

    RESOURCE:
    MODEL要設為MP
    OPTIONS中要有LAN

    MASTER服務器上的DBBL負責與其他服務器上的服務器BBL進行通訊,
    BBLQUERY: 每臺服務器上的BBL每隔SCANUNIT*BBLQUERY秒,向MASTER機上的
    DBBL發送一次狀態信息。默認為300秒
    DBBLWAIT: 如果MASTER機沒有收到某臺服務器發送的狀態信息,它將等待
    SCANUNIT*DBBLWAIT秒,如果還沒有收到該服務器發送的狀態信息,這臺服務
    器將被分離出去(PARTITIONED),默認為20秒

    MACHIENS:
    在MACHINES中要配置該TUXEDO應用系統包括的每臺服務器,如果該服務器時UNIX服務器,那么要配置UID,GID,UID,GID為TUXEDO用戶所對應的UID,GID,在UNIX下可以用ID命令查看。


    NETWORK:
    在該節中配置服務器之間通訊的IP地址及BRIDGE進程,
    在一個MP方式的TUXEDO應用系統中,不同的服務器之間通過BRIDGE進程進行通訊,該BRIDGE的偵聽IP地址及端口
    在NADDR中指定。如果是在UNIX下要指定該BRIDGE所用的網絡設備,如果是在NT下則不要。

    在TUXEDO系統啟動前,不同服務器之間的通訊是通過tlisten進程來進行的,因為這時還沒有BRIDGE進程。
    NLSADDR為tlisten進程偵聽的IP地址及端口。

    一個MP方式的配置例子。

    環境:WIN2000服務器一臺,安裝TUXEDO6.5, 服務器名WIN,IP地址:10.13.1.124
    SUN5.8服務器一臺,安裝TUXEDO6.5, 服務器名SUN,IP地址:12.22.32.35
    MASTER機為WIN2000服務器,BACKUP機為SUN。

    在WIN2000服務器上的UBBCONFIG的內容如下,在SUN服務器上不用編寫UBBCONFIG文件。當啟動時DBBL會自動
    把WIN2000服務器上的TUXCONFIG文件發送到SUN服務器上。

    *RESOURCES
    IPCKEY 87656
    MASTER site1,site2
    MAXACCESSERS 40
    MAXSERVERS 40
    MAXSERVICES 40
    MODEL MP
    OPTIONS LAN

    *MACHINES
    WIN LMID=site1
    APPDIR="d:\tuxdemo\mp"
    TUXCONFIG="d:\tuxdemo\mp\tuxconfig"
    TYPE="win2000"
    TUXDIR="d:\tuxedo65"

    SUN LMID=site2
    UID=1006
    GID=30
    APPDIR="/export/home/simpapp"
    TUXCONFIG="/export/home/simpapp/tuxconfig"
    TYPE="sun"
    TUXDIR="/export/home/tuxedo"

    *GROUPS
    GROUP1
    LMID=site1 GRPNO=1 ōPENINFO=NONE
    GROUP2
    LMID=site2 GRPNO=2 ōPENINFO=NONE


    *NETWORK
    site1 NADDR="http://10.13.1.124:6000"
    NLSADDR="http://10.13.1.124:6001"


    site2 NADDR="http://12.22.32.35:6000"
    NLSADDR="http://12.22.32.35:6001"
    BRIDGE="/dev/tcp"



    *SERVERS
    DEFAULT:
    CLOPT="-A"

    simpserv SRVGRP=GROUP2 SRVID=3

    *SERVICES
    TOUPPER


    1. 在WIN2000服務器上把該UBBCONFIG編譯成TUXCONFIG
    tmloadcf -y ubbmp
    2. 在WIN2000服務器上啟動tlisten進程
    tlisten -l //10.13.1.124:6001
    3. 在SUN服務器上啟動tlisten進程
    tlisten -d /dev/tcp -l /12.22.32.35:6001
    4. 在WIN2000服務器上啟動該TUXEDO應用系統
    tmboot -y
    TUXEDO會先啟動WIN2000服務器上的進程,然后再啟動SUN服務器上的進程。
    5. 在WIN2000服務器上執行
    simpcl mp test
    因為WIN2000服務器上沒有TOUPPER服務,TUXEDO會自動調用SUN服務器上的TOUPPER服務,并把結果返回給客戶端,這一切對客戶端來說是透明的。
    posted on 2009-05-25 23:19 jinfeng_wang 閱讀(1203) 評論(0)  編輯  收藏 所屬分類: ZZLinuxtuxedo
    主站蜘蛛池模板: 成人妇女免费播放久久久| 成人免费视频小说| 亚洲人成77777在线观看网| 免费看的一级毛片| 一级做a毛片免费视频| 久久精品国产亚洲av日韩| 日韩a级毛片免费视频| 在线观看特色大片免费网站| 亚洲ts人妖网站| 最新国产AV无码专区亚洲| 久久久高清免费视频| 人妻无码中文字幕免费视频蜜桃| 亚洲综合精品一二三区在线| 国产一级做a爱免费视频| 污污网站免费观看| 深夜A级毛片视频免费| 亚洲成a人片在线观看中文app| www.亚洲精品.com| 国产成人免费午夜在线观看| 亚洲免费日韩无码系列| 中文字幕亚洲男人的天堂网络| 亚洲中文字幕无码久久综合网| 德国女人一级毛片免费| 久久久久国产免费| 又黄又大的激情视频在线观看免费视频社区在线| 亚洲丁香色婷婷综合欲色啪| 亚洲av无码天堂一区二区三区| 黄色网址免费大全| 免费毛片a线观看| 性生大片视频免费观看一级| 亚洲人成77777在线播放网站不卡| 亚洲欧洲成人精品香蕉网| 在线免费观看韩国a视频| 波多野结衣在线免费观看| 水蜜桃视频在线观看免费播放高清| 美女视频黄频a免费大全视频| 亚洲午夜国产精品| 亚洲日本在线看片| 亚洲AV无码久久精品成人| 国产a v无码专区亚洲av| 国产免费爽爽视频免费可以看|