2024年8月23日 星期五

wicket 10 要能跑在clusters環境下之設定

 Spring boot 3.x 加上wicket 10 跑在k8s或是其他cluster的環境。

1 .由於wicket 會將page的歷史與快取資料存到於伺服器的暫存資料夾,所以必須將此資料改存於第三方共同的儲存,以利同步化。若是採用memcached的話可進行以下設定。

在pom.xml加入wicketstuff-datastore-memcached。

<dependency>

<groupId>org.wicketstuff</groupId>

<artifactId>wicketstuff-datastore-memcached</artifactId>

<version>${wicket.version}</version>

</dependency>


並加入memcached的設定檔

 @Bean

public DataStoreMemcachedProperties prop() {

DataStoreMemcachedProperties p = new DataStoreMemcachedProperties();

p.setServerNames("xxx.xxx.xxx.xxx");

return p;

}

這樣在wicket 啟用後,即會自動載入並啟用

※若無法自動,請檢查pom是否有載入wicket-spring-boot-starter這個元件。

2.若環境無法設定粘滯會話(Sticky Sessions),則需進一步做下列設定,將tomcat的產生的session也一併存入第三方。例如以下memcached例子說明:


@Configuration

public class TomcatSessionConfig {

@Bean

public TomcatContextCustomizer tomcatContextCustomizer() {

return context -> {

try {

                                        String host = "xxx.xxx.xxx.xxx";

MemcachedBackupSessionManager manager = new MemcachedBackupSessionManager();

manager.setMemcachedNodes(host + ":11211");

manager.setSticky(false);

manager.setSessionBackupAsync(false);

manager.setLockingMode("none");

context.setManager(manager);

} catch (Exception e) {

e.printStackTrace();

}

};

}

}

以上即會在啟動時,tomcat自動將session存到memcached





2024年5月14日 星期二

查詢資料庫中依資料表占的容量大小排序

 USE databaseName; -- 替換為你的資料庫名稱

GO


WITH TableSizes AS

(

    SELECT 

        t.NAME AS TableName,

        p.rows AS RowCounts,

        SUM(a.total_pages) * 8 AS TotalSpaceKB,

        SUM(a.used_pages) * 8 AS UsedSpaceKB,

        (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB

    FROM 

        sys.tables t

    INNER JOIN      

        sys.indexes i ON t.OBJECT_ID = i.object_id

    INNER JOIN 

        sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id

    INNER JOIN 

        sys.allocation_units a ON p.partition_id = a.container_id

    WHERE 

        t.NAME NOT LIKE 'dt%' AND

        i.OBJECT_ID > 255 AND   

        i.index_id <= 1

    GROUP BY 

        t.Name, p.Rows

)

SELECT 

    TableName,

    RowCounts,

    TotalSpaceKB,

    UsedSpaceKB,

    UnusedSpaceKB

FROM 

    TableSizes

ORDER BY 

    TotalSpaceKB DESC;

2022年10月26日 星期三

收到adsense匯款中間會被扣了多少手續費?

 

於10/21日Adsense進行發放收益,其金額為2,171.64 而實際收到的金額為2150.34(以國泰世華銀行為例),中間手續費為2171.64-2150.34=21.3(手續費),國泰銀收取9.3,中間轉匯銀行收取12、計算總手續費占收益比(約為0.98%),相關資訊如下參考:

註:Adsense收益可自行設定總額到多少才進行付款,因為手續費占比會因此不固定。



圖:Adsense進行付款


圖:銀行收到匯款




2022年2月8日 星期二

找出android 用於facebook login 使用的hash key

 若在執行facebook 登入時,發生以下錯誤畫面,則表示在facebook app設定的hash key為不一確,以下介紹怎麼找到正確的hash key.


圖:找不到正確的hash key


請至google play Console的設定→「應用程式完整性」,將SHA-1憑證指紋整個複製下來。

由於facebook 要設定的格式是base64,所以利用下面網址進行轉換http://tomeko.net/online_tools/hex_to_base64.php,請將複製的資料,填在「Hex String」欄,並按下「Convert」,即可得到Output[base64]的值,(最後結尾會是=)。


再將此值填入facebook app  第四步驟即可








2021年11月11日 星期四

sqlserver 動態資料遮罩

  ALTER Table [table_name] ALTER  column [column_name]  add  MASKED  with   (FUNCTION = 'partial(3,"xxxxxx",3)')


參考資料

https://docs.microsoft.com/zh-tw/sql/relational-databases/security/dynamic-data-masking?view=sql-server-ver15