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

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

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

    176142998

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      116 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks

    2011年11月7日 #

    官網地址
    http://www.oracle.com/technetwork/cn/middleware/ias/downloads/wls-main-091116-zhs.html


    各個版本的都有,以下列舉出來9.2的

    Oracle WebLogic Server 9.2 MP3版本

    http://download.oracle.com/otn/bea/weblogic/server923_win32.exe.zip

    http://download.oracle.com/otn/bea/weblogic/server923_linux32.bin.zip

    http://download.oracle.com/otn/bea/weblogic/server923_solaris32.bin.zip

     

    Oracle WebLogic Server 9.2 MP4版本

     

    http://download.oracle.com/otn/bea/weblogic/server924_win32.zip

     

    http://download.oracle.com/otn/bea/weblogic/server924_linux32.zip

    http://download.oracle.com/otn/bea/weblogic/server924_solaris32.zip

     

    Oracle WebLogic Server 10.0 MP2 版本

    http://download.oracle.com/otn/bea/weblogic/V16484-01.zip

    posted @ 2012-04-12 09:54 飛飛 閱讀(1027) | 評論 (0)編輯 收藏



    linux-geum:/etc/init.d # more start_oracle.sh
    #this script is used to start the oracle

    su - oracle -c "/opt/oracle/product/10g/bin/dbstart"

    su - oracle -c "/opt/oracle/product/10g/bin/lsnrctl start"


    ln -s /etc/init.d/start_oracle.sh  /etc/rc.d/rc2.d/S16start_oracle
    ln -s /etc/init.d/start_oracle.sh  /etc/rc.d/rc3.d/S16start_oracle
    ln -s /etc/init.d/start_oracle.sh  /etc/rc.d/rc5.d/S16start_oracle

    linux-geum:/etc/init.d # more stop_oracle.sh
    #this script is used to stop the oracle

    su - oracle -c "/opt/oracle/product/10g/bin/lsnrctl stop"

    su - oracle -c "/opt/oracle/product/10g/bin/bin/dbshut"


    ln -s /etc/init.d/stop_oracle.sh  /etc/rc.d/rc2.d/S16stop_oracle
    ln -s /etc/init.d/stop_oracle.sh  /etc/rc.d/rc3.d/S16stop_oracle
    ln -s /etc/init.d/stop_oracle.sh  /etc/rc.d/rc5.d/S16stop_oracle

    posted @ 2012-04-06 17:35 飛飛 閱讀(687) | 評論 (0)編輯 收藏

    在/etc/init.d 下新建after.local或者編輯after.local文件,

    文件內容
    /usr/local/bin/memcached -d -m 512 -u root -l 192.168.1.106 -p 11211 -c 1024 -P /tmp/memcached.pid
    posted @ 2012-04-06 17:33 飛飛 閱讀(547) | 評論 (0)編輯 收藏

    1、主要實現用戶在進行某項操作時,多數據庫的更新、插入和刪除詳細信息。記錄操作時的請求信息。
    2、在進入Controller時,生成一個事物ID,在這個Controller中進行的所有DAO操作都綁定該事物ID。并進行記錄日志信息。


    package com.centralsoft.filter;

    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.regex.Pattern;

    import net.sf.json.JSONObject;

    import org.aspectj.lang.ProceedingJoinPoint;
    import org.aspectj.lang.annotation.Around;
    import org.aspectj.lang.annotation.Aspect;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.stereotype.Component;

    import com.centralsoft.cache.CacheService;
    import com.centralsoft.cache.annotations.Cache;
    import com.centralsoft.cache.entity.MemCacheKey;
    import com.centralsoft.entity.SysLogDetail;
    import com.centralsoft.manager.pub.ThreadBean;
    import com.centralsoft.manager.pub.ThreadId;
    import com.centralsoft.pub.dao.SysLogDAO;
    import com.centralsoft.webservice.pub.DateSHA;

    /**
     * DAO層AOP攔截器,實現記錄用戶操作過的所有方法和參數,并實現DAO層緩存
     *
     * @author Administrator
     *
     */
    @Aspect
    @Component
    public class AspectAutoDAOBean {

     @Autowired
     @Qualifier("CacheService")
     private CacheService memcache;

     @Autowired
     @Qualifier("SysLogDAO")
     private SysLogDAO SysLogDAO;

     @Around("execution(* com.centralsoft.*.dao.Zr*DAO.*(..))")
     public Object before(ProceedingJoinPoint joinPoint) throws Throwable {
      // 獲取請求事務ID信息
      ThreadId threadId = new ThreadBean().getThreadId();
      // 調用方法名稱
      String methodName = joinPoint.getSignature().getName();
      // 調用參數
      Object[] args = joinPoint.getArgs();
      Object object = null;

      // 數據庫更新操作日志
      if (Pattern.matches("(save|insert|add|delete|remove|del|update)[\\S]*",
        methodName)) {
       if (threadId != null && threadId.getTransactionalId() != null) {
        // 獲取執行請求事務ID
        String transactionalId = threadId.getTransactionalId();
        // 獲取執行請求用戶ID
        String userId = threadId.getUserId();
        SysLogDetail sysLogDetail = new SysLogDetail();
        sysLogDetail.setXh(transactionalId);
        sysLogDetail.setUserId(userId);
        sysLogDetail.setMethod(methodName);
        JSONObject msg = new JSONObject();
        // 處理參數
        for (Object temp : args) {
         // 獲取參數類型,不同參數類型數據處理不一樣
         Class<? extends Object> paramClazz = temp.getClass();
         String classType = paramClazz.getName();
         if (classType.equals("java.lang.String")) {
          msg.put("key", temp);
         } else if (classType.equals("java.util.HashMap")) {
          msg.putAll((HashMap<?, ?>) temp);
         } else if (classType.startsWith("com.")) {
          try {
           Field[] f = paramClazz.getDeclaredFields();
           for (Field field : f) {
            String fieldName = field.getName();
            field.setAccessible(true);
            msg.put(fieldName, field.get(temp));
           }
          } catch (SecurityException e) {
           e.printStackTrace();
          } catch (IllegalArgumentException e) {
           e.printStackTrace();
          }
         }
        }
        sysLogDetail.setMsg(msg.toString());
        // 記錄DAO數據庫操作日志
        SysLogDAO.insertSysLogDetail(sysLogDetail);
       }
       // 執行數據庫操作
       object = joinPoint.proceed();

       // 數據庫查詢緩存
      } else if (Pattern.matches("(query|load|get|select|read)[\\S]*",
        methodName)) {
       // DAO層緩存注解
       MemCacheKey cacheKey = new MemCacheKey();
       // 獲取cache注解屬性
       Cache cache = null;
       // 獲取請求方法
       Class<?> cls = joinPoint.getTarget().getClass();
       // 獲取class中的所有方法
       Method[] methods = cls.getMethods();
       for (Method m : methods) {
        // 獲取執行方法前的注解信息。
        if (m.getName().equals(methodName)) {
         cache = m.getAnnotation(Cache.class);
         break;
        }
       }

       if (cache != null) {
        // 獲取memcacheKey,并進行MD5加密
        cacheKey = memcacheKey(cache, args);
        // 判斷緩存服務器是否存在該可以值
        if (memcache.exist(cacheKey.getMemcacheKey())) {
         object = memcache.get(cacheKey.getMemcacheKey());
        } else {
         // 執行數據庫操作
         object = joinPoint.proceed();
         // 將數據存放進緩存
         if (cacheKey.getMemcacheKey() != null) {
          memcache.put(cacheKey.getMemcacheKey(),
            object == null ? "" : object, new Date(cacheKey
              .getTime()));
         }
        }
       } else {
        // 執行數據庫操作
        object = joinPoint.proceed();
       }
      } else {
       // 執行數據庫操作
       object = joinPoint.proceed();
      }

      return object;

     }

     /**
      * 獲取根據注解中的key獲取memcache的含參數key值
      *
      * @param cache
      * @param parameterObject
      * @return
      * @author fei.zhao 2011-10-10
      */
     @SuppressWarnings("unchecked")
     private static MemCacheKey memcacheKey(Cache cache, Object[] args) {
      MemCacheKey tempKey = new MemCacheKey();
      String key = "";
      boolean flag = true;
      StringBuilder keyBuilder = new StringBuilder(32);
      // 獲取注解中的key值
      String cacheKey = cache.key();
      Object[] cacheArgs = cacheKey.split("\\.");

      // 設置請求參數在args[]中的序號
      // key參數進行循環遍歷
      for (Object s : cacheArgs) {
       // 判斷是否是格式$,$...
       if (s.toString().startsWith("$")) {
        // 獲取參數名稱
        String type = s.toString().substring(1);
        // 獲取參數值
        Object temp = args[0];
        // 獲取參數類型,不同參數類型數據處理不一樣
        Class<? extends Object> paramClazz = temp.getClass();
        String classType = paramClazz.getName();
        if (classType.equals("java.lang.String")) {
         keyBuilder.append(temp);
        } else if (classType.equals("java.util.HashMap")) {
         keyBuilder.append(((HashMap) temp).get(type));
        } else if (classType.startsWith("com.")) {
         try {
          Field f = paramClazz.getDeclaredField(type);// 實體中字段
          f.setAccessible(true);// 允許訪問私有字段
          keyBuilder.append(f.get(temp));
         } catch (SecurityException e) {
          flag = false;
          e.printStackTrace();
         } catch (NoSuchFieldException e) {
          flag = false;
          e.printStackTrace();
         } catch (IllegalArgumentException e) {
          flag = false;
          e.printStackTrace();
         } catch (IllegalAccessException e) {
          flag = false;
          e.printStackTrace();
         }
        }
       } else {
        keyBuilder.append(s);
       }
       // 每個參數后面添加 “.”號分隔
       keyBuilder.append(".");
      }
      if (args.length == 3) {
       keyBuilder.append(args[1] + ".").append(args[2]);
      }
      if (flag == true) {
       key = keyBuilder.toString();
       tempKey.setMemcacheKey(DateSHA.shaEncrypt(key));
       tempKey.setTime(cache.time());
      }
      return tempKey;
     }
    }

    posted @ 2011-11-07 19:48 飛飛 閱讀(7750) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲午夜在线一区| 亚洲经典在线中文字幕| 疯狂做受xxxx高潮视频免费| 免免费国产AAAAA片| 亚洲国产成人超福利久久精品| 6080午夜一级毛片免费看 | 亚洲福利精品一区二区三区| 久久亚洲精品无码gv| 国产无遮挡裸体免费视频| 亚洲精华液一二三产区| 国产真人无遮挡作爱免费视频| 老司机午夜在线视频免费| 国产成人亚洲精品影院| baoyu122.永久免费视频| 亚洲av中文无码乱人伦在线咪咕| 嫩草成人永久免费观看| 亚洲第一成年人网站| 成年美女黄网站色大免费视频| 亚洲欧美在线x视频| 国产91精品一区二区麻豆亚洲| 91视频免费观看| 亚洲色av性色在线观无码| 野花高清在线观看免费完整版中文| 中文字幕精品三区无码亚洲 | 亚洲人成人无码网www国产| 成人免费乱码大片A毛片| 日韩精品一区二区亚洲AV观看| 亚洲欧洲免费无码| 免费无码专区毛片高潮喷水| 亚洲国产精品无码专区影院| 亚洲免费二区三区| 国产亚洲女在线线精品| 国产精一品亚洲二区在线播放| 亚州免费一级毛片| 国产亚洲精品免费| 337p日本欧洲亚洲大胆艺术| 国产亚洲精品免费| 日本xxxx色视频在线观看免费| 亚洲av永久中文无码精品| 国产成人精品日本亚洲网站| 成年美女黄网站色大免费视频|