예제 #1
0
  public JdbcStore(SessionSettings settings, SessionID sessionID, DataSource ds) throws Exception {
    this.sessionID = sessionID;
    if (settings.isSetting(sessionID, SETTING_JDBC_STORE_SESSIONS_TABLE_NAME)) {
      sessionTableName = settings.getString(sessionID, SETTING_JDBC_STORE_SESSIONS_TABLE_NAME);
    } else {
      sessionTableName = DEFAULT_SESSION_TABLE_NAME;
    }

    if (settings.isSetting(sessionID, SETTING_JDBC_STORE_MESSAGES_TABLE_NAME)) {
      messageTableName = settings.getString(sessionID, SETTING_JDBC_STORE_MESSAGES_TABLE_NAME);
    } else {
      messageTableName = DEFAULT_MESSAGE_TABLE_NAME;
    }

    if (settings.isSetting(sessionID, SETTING_JDBC_SESSION_ID_DEFAULT_PROPERTY_VALUE)) {
      defaultSessionIdPropertyValue =
          settings.getString(sessionID, SETTING_JDBC_SESSION_ID_DEFAULT_PROPERTY_VALUE);
    } else {
      defaultSessionIdPropertyValue = SessionID.NOT_SET;
    }

    dataSource = ds == null ? JdbcUtil.getDataSource(settings, sessionID) : ds;

    // One table is sampled for the extended session ID columns. Be sure
    // that all tables are extended if you extend any of them.
    extendedSessionIdSupported = JdbcUtil.determineSessionIdSupport(dataSource, sessionTableName);

    setSqlStrings();

    loadCache();
  }