亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
打印 上一主題 下一主題

[WebLogic] 中間件WebLogic/Tuxedo/GoldenGate的排錯(cuò)與優(yōu)化(獲獎(jiǎng)名單已公布) [復(fù)制鏈接]

論壇徽章:
0
91 [報(bào)告]
發(fā)表于 2012-05-15 09:02 |只看該作者
很好奇,不知道大名鼎鼎的Tuxedo源代碼長(zhǎng)什么樣子?

論壇徽章:
0
92 [報(bào)告]
發(fā)表于 2012-05-16 09:01 |只看該作者
也很好奇,那WebLogic的源代碼呢?

論壇徽章:
0
93 [報(bào)告]
發(fā)表于 2012-05-18 06:50 |只看該作者
本帖最后由 三人行必有吾師 于 2012-05-18 21:16 編輯

關(guān)于源代碼這類(lèi)的問(wèn)題,現(xiàn)在看起來(lái),感覺(jué)其實(shí)還是比較敏感的,容易越界...

論壇徽章:
0
94 [報(bào)告]
發(fā)表于 2012-05-18 06:57 |只看該作者
回復(fù) 91# time不待人

其實(shí),從安裝和使用Tuxedo的過(guò)程中,公開(kāi)的本身就可以拿到一部分源代碼。

首先,在編譯的時(shí)候,帶上"-k"選項(xiàng),就能保留中間生成的臨時(shí)主函數(shù)相關(guān)源文件,比如大家熟知的Tuxedo自帶的大小寫(xiě)轉(zhuǎn)換的例子,一般寫(xiě)服務(wù)端程序時(shí),只能看到封裝好的Service接口,但當(dāng)tmboot時(shí),大家知道它是由BBL帶起來(lái)的,所以肯定是個(gè)標(biāo)準(zhǔn)的C語(yǔ)言程序,只是其主函數(shù)main()由Tuxedo自己動(dòng)態(tài)提供了。

比如我們?nèi)绻诰幾gsimpserv的TOUPPER服務(wù)時(shí),使用該選項(xiàng),就能得到源代碼(舉例)BS-1554.c
  1. #include <stdio.h>
  2. #include <xa.h>
  3. #include <atmi.h>

  4. #if defined(__cplusplus)
  5. extern "C" {
  6. #endif
  7. extern int _tmrunserver _((int));
  8. extern void TOUPPER _((TPSVCINFO *));
  9. #if defined(__cplusplus)
  10. }
  11. #endif

  12. static struct tmdsptchtbl_t _tmdsptchtbl[] = {
  13.         { (char*)"TOUPPER", (char*)"TOUPPER", (void (*) _((TPSVCINFO *))) TOUPPER, 0, 0 },
  14.         { NULL, NULL, NULL, 0, 0 }
  15. };

  16. #ifndef _TMDLLIMPORT
  17. #define _TMDLLIMPORT
  18. #endif

  19. #if defined(__cplusplus)
  20. extern "C" {
  21. #endif
  22. _TMDLLIMPORT extern struct xa_switch_t tmnull_switch;
  23. #if defined(__cplusplus)
  24. }
  25. #endif

  26. typedef void (*tmp_void_cast)();
  27. typedef void (*tmp_voidvoid_cast)(void);
  28. typedef int (*tmp_intchar_cast)(int, char **);
  29. typedef int (*tmp_int_cast)(int);
  30. struct tmsvrargs_t tmsvrargs = {
  31.         NULL,
  32.         &_tmdsptchtbl[0],
  33.         0,
  34.         (tmp_intchar_cast)tpsvrinit,
  35.         (tmp_voidvoid_cast)tpsvrdone,
  36.         (tmp_int_cast)_tmrunserver,        /* PRIVATE  */
  37.         NULL,                        /* RESERVED */
  38.         NULL,                        /* RESERVED */
  39.         NULL,                        /* RESERVED */
  40.         NULL,                        /* RESERVED */
  41.         (tmp_intchar_cast)tpsvrthrinit,
  42.         (tmp_voidvoid_cast)tpsvrthrdone
  43. };

  44. struct tmsvrargs_t *
  45. #ifdef _TMPROTOTYPES
  46. _tmgetsvrargs(void)
  47. #else
  48. _tmgetsvrargs()
  49. #endif
  50. {
  51.         tmsvrargs.reserved1 = NULL;
  52.         tmsvrargs.reserved2 = NULL;
  53.         tmsvrargs.xa_switch = &tmnull_switch;
  54.         return(&tmsvrargs);
  55. }

  56. int
  57. #ifdef _TMPROTOTYPES
  58. main(int argc, char **argv)
  59. #else
  60. main(argc,argv)
  61. int argc;
  62. char **argv;
  63. #endif
  64. {
  65. #ifdef TMMAINEXIT
  66. #include "mainexit.h"
  67. #endif

  68.         return( _tmstartserver( argc, argv, _tmgetsvrargs()));
  69. }
復(fù)制代碼

論壇徽章:
0
95 [報(bào)告]
發(fā)表于 2012-05-18 13:03 |只看該作者
一般來(lái)說(shuō)考慮stucts等架構(gòu)tomcat就可以了,但如果考慮EJB的話,WebLogic是比較好的選擇

論壇徽章:
0
96 [報(bào)告]
發(fā)表于 2012-05-18 20:16 |只看該作者
本帖最后由 三人行必有吾師 于 2012-05-18 20:33 編輯

回復(fù) 95# ???ó???ê

是的,實(shí)踐中這個(gè)評(píng)判其實(shí)簡(jiǎn)潔可行,尤其是三大開(kāi)源框架SSH開(kāi)發(fā)應(yīng)用流行的話。


   

論壇徽章:
0
97 [報(bào)告]
發(fā)表于 2012-05-18 20:32 |只看該作者
回復(fù) 91# time不待人

其次,在Tuxedo安裝之后的lib目錄下,一般也自帶若干個(gè).c文件,典型的有AUTHSRV.c,tmtypesw.c等;前者是用來(lái)寫(xiě)自定義的安全認(rèn)證接口用,后者做自定義buffer處理,特別是encode/decode相關(guān)動(dòng)作,但實(shí)踐中反而是經(jīng)常用來(lái)趁機(jī)添加數(shù)據(jù)加密環(huán)節(jié)。

而且這些源文件,要是從C語(yǔ)言角度來(lái)說(shuō)的,寫(xiě)得相當(dāng)經(jīng)典,對(duì)C語(yǔ)言理解之深,折射出貝爾實(shí)驗(yàn)室當(dāng)年誕生UNIX/C的風(fēng)采,比如AUTHSRV.c開(kāi)頭第一個(gè)函數(shù):
  1. static        char *
  2. #ifdef _TMPROTOTYPES
  3. mystrtok(char *s, char *del)
  4. #else
  5. mystrtok(s,del)
  6. char        *s;
  7. char        *del;
  8. #endif
  9. {
  10.         static        char *p = NULL;
  11.         char        *r;

  12.         if (s != NULL) {
  13.                 p = s;
  14.         }
  15.         if ((p == NULL) || (*p == '\0')) {
  16.                 return(NULL);
  17.         }
  18.         r = p;
  19.         while (strchr(del,*p) == NULL) {
  20.                 p++;
  21.         }
  22.         if (*p != '\0') {
  23.                 *p++ = '\0';
  24.         }
  25.         return(r);
  26. }
復(fù)制代碼

論壇徽章:
0
98 [報(bào)告]
發(fā)表于 2012-05-18 20:54 |只看該作者
本帖最后由 三人行必有吾師 于 2012-05-18 20:56 編輯

回復(fù) 91# time不待人

然后,言歸正傳,看一眼真實(shí)的Tuxedo相關(guān)源碼和工程相關(guān)的東西,為了不引起不必要的麻煩,這里只取幾個(gè)老點(diǎn)的片段示例一下為止:

1. 編譯工程的Makefile,比如其中一個(gè)tuxedo.mk
  1. #        Copyright 1996 BEA Systems, Inc.
  2. #        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF
  3. #        BEA Systems, Inc.
  4. #        The copyright notice above does not evidence any
  5. #        actual or intended publication of such source code.

  6. #        Copyright (c) 1984 AT&T
  7. #          All Rights Reserved

  8. #        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T
  9. #        The copyright notice above does not evidence any
  10. #        actual or intended publication of such source code.

  11. #ident        "@(#) tuxedo/tuxedo.mk        $Revision: 1.1 $"
  12. #

  13. AT=
  14. ARGS=all
  15. MAKE=make
  16. LANG = C
  17. SINCDIR=$(TUXDIR)/sysinclude
  18. INCDIR=$(TUXDIR)/include
  19. LIBDIR=$(TUXDIR)/lib
  20. BINDIR=$(TUXDIR)/bin
  21. XCBINDIR=$(TUXDIR)/bin
  22. CGFLAG=
  23. CC=cc
  24. AR=ar
  25. ARFLAGS=lrv
  26. LORDER=lorder
  27. SUF=.a
  28. DSUF=.a
  29. LIBSUF=.a
  30. PRE=$(LIBDIR)/lib
  31. LINT=lint
  32. LIBNET=-lnsl_s
  33. NETWORK=tli
  34. CRYPT=des

  35. ALL=include libbuft libtux libnet libtmib libqm cmdtux syssrvrs
  36. all:        $(ALL)
  37.         @:
  38. installws:        include libbuft libnet

  39. $(ALL)::
  40.         $(AT) cd $(@);  $(MAKE) -f $(@).mk  \
  41.                 MAKE=$(MAKE) SUF=$(SUF) DSUF=$(DSUF) PRE=$(PRE) \
  42.                 TUXDIR=$(TUXDIR) LANG=$(LANG) LORDER=$(LORDER) \
  43.                 INCDIR=$(INCDIR) SINCDIR=$(SINCDIR) LIBDIR=$(LIBDIR) \
  44.                 BINDIR=$(BINDIR) XCBINDIR=$(XCBINDIR) \
  45.                 PLATFORM=$(PLATFORM) LIBSUF=$(LIBSUF) \
  46.                 LINT="$(LINT)" LIBNET="$(LIBNET)" NETWORK=$(NETWORK) CRYPT=$(CRYPT) \
  47.                 CGFLAG="$(CGFLAG)" CC=$(CC) AR=$(AR) ARFLAGS="$(ARFLAGS)" $(ARGS)

  48. install clean clobber depend lint:
  49.         $(MAKE) -f tuxedo.mk ARGS=$@ \
  50.                 MAKE=$(MAKE) SUF=$(SUF) DSUF=$(DSUF) PRE=$(PRE) \
  51.                 TUXDIR=$(TUXDIR) LANG=$(LANG) LORDER=$(LORDER) \
  52.                 INCDIR=$(INCDIR) SINCDIR=$(SINCDIR) LIBDIR=$(LIBDIR) \
  53.                 BINDIR=$(BINDIR) XCBINDIR=$(XCBINDIR) \
  54.                 PLATFORM=$(PLATFORM) LIBSUF=$(LIBSUF) \
  55.                 LINT="$(LINT)" LIBNET="$(LIBNET)" NETWORK=$(NETWORK) CRYPT=$(CRYPT) \
  56.                 CGFLAG="$(CGFLAG)" CC=$(CC) AR=$(AR) ARFLAGS="$(ARFLAGS)"

  57. list:
  58.         @echo tuxedo/tuxedo.mk
  59.         @$(MAKE) -f tuxedo.mk ARGS=$@

  60. print:
  61.         @echo tuxedo/tuxedo.mk
  62.         @$(MAKE) -f tuxedo.mk ARGS=$@
復(fù)制代碼
里面至今還清晰的保留了AT&T字樣。。。。。
  1. #        Copyright (c) 1984 AT&T
  2. #          All Rights Reserved
復(fù)制代碼

論壇徽章:
0
99 [報(bào)告]
發(fā)表于 2012-05-18 20:59 |只看該作者
本帖最后由 三人行必有吾師 于 2012-05-18 21:00 編輯

2. 一些內(nèi)部的頭文件(安裝后在Tuxedo的Include目錄下看不到的)

比如“tlog.h”:
  1. /*        Copyright (c) 1998 BEA Systems, Inc.
  2.         All rights reserved

  3.         THIS IS UNPUBLISHED PROPRIETARY
  4.         SOURCE CODE OF BEA Systems, Inc.
  5.         The copyright notice above does not
  6.         evidence any actual or intended
  7.         publication of such source code.
  8. */

  9. /*        Copyright 1996 BEA Systems, Inc.        */
  10. /*        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF             */
  11. /*        BEA Systems, Inc.                             */
  12. /*        The copyright notice above does not evidence any           */
  13. /*        actual or intended publication of such source code.        */

  14. /*      Copyright (c) 1990 Unix System Laboratories, Inc.
  15.         All rights reserved

  16.         THIS IS UNPUBLISHED PROPRIETARY
  17.         SOURCE CODE OF Unix System Laboratories, Inc.
  18.         The copyright notice above does not
  19.         evidence any actual or intended
  20.         publication of such source code.
  21. */
  22. #ifndef TLOG_H
  23. #define TLOG_H
  24. /* #ident        "@(#) tuxedo/include/tlog.h        $Revision: 1.1 $" */

  25. #ifndef TMMACH_H
  26. #include <tmmach.h>
  27. #endif
  28. #ifndef NOWHAT
  29. static        char        h_tlog[] = "@(#) tuxedo/include/tlog.h        $Revision: 1.1 $";
  30. #endif


  31. #include <Uunix.h>
  32. #include <tmstruct.h>
  33. #include <gpsys.h>

  34. /* TLOG constants */
  35. #define TLOGLRMGC        -999999                /* magic number for the log records */
  36. #define TLOGMAXSIZE         2048                /* maximum number of pages/log */
  37. #define TLOGDFLSIZE         100                /* default number of pages/log */
  38. #define TLOGMAXLSN        30000000         /* the range of LSN for TM32I */

  39. #define TIND(p)                ((p) / BITSPERLONG32)
  40. #define TOFST(p)        ((p) % BITSPERLONG32)
  41. #define SET_BIT(b,p)        (b[TIND((p))] |= (01 << ( BITSPERLONG32 - TOFST((p)) -1)))
  42. #define RESET_BIT(b,p)        (b[TIND((p))] &= ~(01 << (BITSPERLONG32 - TOFST((p)) -1)))

  43. /* TLOG record - data part format */
  44. struct tlgrec_data_t {
  45.         TM32I        magic;                        /* magic number - TLOGLRMGC */
  46.         TM32I        tlg_version;                /* version number */
  47.         GTRID        gtrid;                        /* global tran id */
  48.         unsigned short        count;                /* number of entries in grpid array */
  49.         GRPID        loggrp;                        /* coordinator group id */
  50.         GRPID        grpid[TMGMAXGROUPS];        /* group id array */
  51. } ;
  52. #define TLGVERSION 60

  53. /* TLOG record - including both the log data and the TLOG control table */
  54. struct tlgrec_t {
  55.         TM32I                        chksum; /* xor' whole record on TM32I basis */
  56.         struct tlgrec_data_t        data;
  57.         TMTLGCTL                ctl_tbl;
  58. } ;
  59. typedef struct tlgrec_t TLGREC;

  60. extern void         _tmvtoc_errlog _((_TCADEF, char *));
  61. extern short        _tmlocate0 _((_TCADEF, TM32U [], short, short));
  62. extern short        _tmlocate1 _((_TCADEF, TM32U [], short, short));
  63. extern TM32I        _tmcal_chksum _((_TCADEF, TM32I *, int));
  64. extern int        _tlog_commit _((_TCADEF, GTRID *, GRPID, unsigned short,
  65.                                 GRPID [], short *));
  66. extern int        _tlog_eot _((_TCADEF, short));
  67. extern int        _tlog_warmstart _((_TCADEF));
  68. extern int        _tlog_create _((_TCADEF, char *, short, char *, long));
  69. extern int        _tlog_destroy _((_TCADEF, char *, char *, long));
  70. extern int        _tlog_reinit _((_TCADEF, char *, short, char *, long));
  71. extern int        _tlog_start _((_TCADEF, int));
  72. extern void        _tlog_stop _((_TCADEF, int));
  73. extern int        _tlog_open _((_TCADEF, char *, char *, long, short, long));
  74. extern int        _tlog_close _((_TCADEF, int));

  75. #endif
復(fù)制代碼
同上,里面至今還清晰的保留了UNIX系統(tǒng)實(shí)驗(yàn)室的標(biāo)記。。。。
  1. /*      Copyright (c) 1990 Unix System Laboratories, Inc.
  2.         All rights reserved

  3.         THIS IS UNPUBLISHED PROPRIETARY
  4.         SOURCE CODE OF Unix System Laboratories, Inc.
  5.         The copyright notice above does not
  6.         evidence any actual or intended
  7.         publication of such source code.
  8. */
復(fù)制代碼

論壇徽章:
0
100 [報(bào)告]
發(fā)表于 2012-05-18 21:07 |只看該作者
本帖最后由 三人行必有吾師 于 2012-05-18 21:08 編輯

3. Tuxedo的C語(yǔ)言代碼

比如核心的BBL.c(太長(zhǎng)了,這里只取其小片段)
  1. /*
  2. * After checking for transaction timeout,
  3. * this routine goes through the registry table entry list and decrements
  4. * the timeleft field for blocking processes.  If this becomes less than
  5. * or equal to zero, then the process is sent a message to be woken up.
  6. */

  7. static void
  8. #ifdef _TMPROTOTYPES
  9. chk_blockers(_TCADEF)
  10. #else
  11. chk_blockers(_TCARG)
  12. _TCADEF;
  13. #endif
  14. {
  15.         TMRTE *rte, *res, *endp;
  16.         TMSTE tmpste, *ste;
  17.         TMMSG wkmsg;
  18.         TMPROC dummy;        /* for _tmnwkill(_TCARG) */
  19.         static long        oldmday = 0;
  20.         time_t timebuf;
  21.         struct tm *tmptr;
  22.         long decrement;
  23.         static        long         rte_scan_first = 0;
  24.         static        long        getenv_done = 0;
  25.         char         *chptr;
  26.         int spawn_flags = SPAWN_RESTARTSRV|SPAWN_CLEANUPSRV;

  27.         _TCDECLPTR(TUX);

  28.         TMDEBUG(10,("> chk_blockers()"));

  29.         /*
  30.          * Check if new day - if so, write message to userlog
  31.          * so that version information is logged.
  32.          */
  33.         timebuf = (time_t)TUX->_TUX__tmbbp->bbmeters.bm_timestamp;
  34.         tmptr = localtime(&timebuf);

  35.         if (tmptr->tm_mday != oldmday) {
  36.                 /*
  37.                  * Don't log when process first starts since startup
  38.                  * message will already cause version information to
  39.                  * be written.
  40.                  */
  41.                 if (oldmday)
  42.                         (void) userlog(" ");
  43.                 oldmday = tmptr->tm_mday;
  44.         }
  45.         if (!tmsyslock(&TUX->_TUX__tmbbp->bbparms)) {
  46.                 TMDEBUG(10,("< chk_blockers(10) returns"));
  47.                 return;
  48.         }
  49.         /* TRANSACTION MGMT chk_blockers calls _tmgttscan */
  50.         /* CR050720 move _tmgttscan to after while() loop */
  51.         if (!rte_scan_first && !getenv_done) {
  52.                 if ((chptr = tuxgetenv("BBLRTESCANFIRST")) != NULL
  53.                         && (*chptr == 'Y' || *chptr ==  'y'))
  54.                 rte_scan_first = 1;
  55.                 getenv_done = 1;
  56.         }
  57.         if (!rte_scan_first)
  58.                 _tmgttscan(_TCARG);

  59.         res = TUX->_TUX__tmrgstry + TUX->_TUX__tmbbp->bbparms.maxaccsrs;        /* begin of reserved */
  60.         if (TUX->_TUX__tmbbp->bbmap.rgstuse == NIL)
  61.                 rte = res;
  62.         else
  63.                 rte = REGISTRY(TUX->_TUX__tmbbp->bbmap.rgstuse);
  64.         endp = TUX->_TUX__tmrgstry + (TUX->_TUX__tmbbp->bbparms.maxaccsrs + MAXADMIN);

  65.         _tminithdr(_TCARG,&wkmsg);
  66.         wkmsg.mhdr.flags = TMALARM;
  67.         decrement = time((time_t *)NULL) - scanunit_interval_start_time;

  68.         /* CR050720 next 2 lines */
  69.         if (rte_scan_first)
  70.                 (void) tmbblock();
  71.         while (rte < endp) {
  72.                 if ((rte->rt_svctimeout > 0) && (rte->rflags & SERVER)) {
  73.                         /* Processing a service, decrement time left to svc */
  74.                         if (rte->rt_svctimeout <= TUX->_TUX__tmbbp->bbparms.scanunit) {
  75.                                 dummy.PRmid = TUX->_TUX__tmproc.PRmid;
  76.                                 dummy.PRpid = rte->pid;
  77.                                 if (_tmnwkill(_TCARG,&dummy,SIGKILL,5) < 0) {
  78.                                         (void) userlog(_MHS_(CMDTUX_CAT,1666,
  79.                                                         MHS_USERLOG,
  80. "WARN: Could not terminate server(%ld) processing after SVCTIMEOUT"),
  81.                                                         (long) rte->pid);
  82.                                 } else {
  83.                                         (void) userlog(_MHS_(CMDTUX_CAT,1667,
  84.                                                         MHS_USERLOG,
  85. "WARN: Server(%ld) processing terminated after SVCTIMEOUT"), (long) rte->pid);
  86.                                         generate_service_timeout_event(_TCARG, rte);
  87.                                         /* status with TMSVCTIMEDOUT
  88.                                          *        indicates timeout occured so
  89.                                          *        cleanupsrv can detect a timeout
  90.                                          *        for the errordetail
  91.                                          */
  92.                                         SVRGRP(&tmpste) = rte->rt_grpid;
  93.                                         SVRID(&tmpste)  = rte->rt_srvid;
  94.                                         if (tmrsvrs(S_GRPID, &tmpste, &tmpste, NULL) == 1) {
  95.                                                 ste = SERVERS(tmpste.hashlist.rlink);
  96.                                                 ste->global.status |= SVCTIMEDOUT;
  97.                                         }
  98.                                         /* Note that we do not reset
  99.                                          * spawn_flags before this call, so
  100.                                          * that multiple calls will result in
  101.                                          * at most one restartsrv and one
  102.                                          * cleanupsrv process. */
  103.                                         _tmbbclean(_TCARG, TUX->_TUX__tmproc.PRmid, NOTAB, &spawn_flags);
  104.                                         rte->rt_svctimeout = 0;
  105.                                 }
  106.                         } else {
  107.                                 /* decrement by actual time since last scan */
  108.                                 rte->rt_svctimeout -= decrement;

  109.                                 /* reset to zero if negative */
  110.                                 if (rte->rt_svctimeout < 0) rte->rt_svctimeout = 0;
  111.                         }
  112.                 }
  113.                 if (rte->hndl.mtype > 0) {
  114.                         /* found a blocker */
  115.                         if (rte->hndl.timeleft <= TUX->_TUX__tmbbp->bbparms.scanunit) {
  116.                                 /* timeout */
  117.                                 rte->hndl.timeleft = 0;
  118.                                 if (rte->rflags & CONV_RECV)
  119.                                         wkmsg.tmhdr.flag = TPCONV;
  120.                                 wkmsg.mhdr.mtype = rte->hndl.mtype;
  121.                                 wkmsg.tmhdr.rplyiter = rte->hndl.rplyiter;
  122.                                 wkmsg.mhdr.qaddr = rte->hndl.qaddr;
  123. #ifdef CHKSUM
  124.                                 mk_chksum(_TCARG,&wkmsg,0);
  125.                                 mk_chksum(_TCARG,&wkmsg,TMENCODE);
  126. #endif
  127.                                 /* no ENCODEing necessary, local only */
  128.                                 /* CR050720  next 2 lines */
  129.                                 if (rte_scan_first)
  130.                                         (void) tmbbunlock();
  131.                                 if (tmsendm(&wkmsg, TPSIGRSTRT|TPNOBLOCK) < 0) {
  132.                                         if (tperrno != TPEBLOCK)
  133.                                                 (void) userlog( _MHS_(CMDTUX_CAT,42,MHS_USERLOG,
  134. "WARN: BBL failed to wake up the blocking process - %ld"),
  135.                                                 (long)rte->pid);
  136.                                 }
  137.                                 /* CR050720  next 2 lines */
  138.                                 if (rte_scan_first)
  139.                                         (void) tmbblock();
  140.                         } else { /* decrement */
  141.                                 /* decrement by actual time since last scan */
  142.                                 rte->hndl.timeleft -= decrement;

  143.                                 /* reset to zero if negative */
  144.                                 if (rte->hndl.timeleft < 0) rte->hndl.timeleft = 0;
  145.                         }
  146.                 }
  147.                 if (rte >= res) {
  148.                         rte++;
  149.                         continue;
  150.                 }
  151.                 if (rte->nextreg == NIL)
  152.                         rte = res;
  153.                 else
  154.                         rte = REGISTRY(rte->nextreg);
  155.         }
  156.         /* CR050720 next 3 lines */
  157.         if (rte_scan_first) {
  158.                 (void) tmbbunlock();
  159.                 _tmgttscan(_TCARG);
  160.         }
  161.         (void) tmsysunlock(&TUX->_TUX__tmbbp->bbparms);
  162.         TMDEBUG(10,("< chk_blockers(20) returns"));
  163.         return;
  164. }
復(fù)制代碼
其中的
  1. /* CR050720 move _tmgttscan to after while() loop */
復(fù)制代碼
  1. /* CR050720 next 2 lines */
  2.         if (rte_scan_first)
  3.         (void) tmbblock();
復(fù)制代碼
是指補(bǔ)丁修改的印記和注釋?zhuān)诖蠹野惭bTuxedo補(bǔ)丁時(shí),或者在udataobj目錄下patchlev里看到的CRxxxxx就是對(duì)應(yīng)的這些代碼
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP