[DB2] ERROR [55039] [IBM][DB2/LINUXX8664] SQL0290N Table space access is not allowed.

สำหรับอันนี้เป็น Error มาจากฝั่ง WebAPI ที่ต่อกับ DB2 ครับ มันทำเว็บตายเลยครับ 555 โดยจะมี Log มาแนวๆนี้ครับ จาก Error SQL0290N Table space access is not allowed. เห็นอันนี้ก็ร้องดังๆในใจแล้ว WTF DB ลูกค้าไปทำอะไรหว่า ซึ่งลูกค้าบอกว่าเปล่า ไม่มี้ เอาจริงๆแอบกลัวเหมือนกัน แต่อยากรู้ว่าลูกค้าไปทำอะไรจริง หรือป่าว เลยไปขอ db2diag.log ของวันที่มีปัญหามาครับ รู้ Lock จาก App ว่าตายช่วงเที่ยง เลยลองไล่ db2diag.log พบว่า สำหรับใครที่ไม่รู้ว่า Path db2diag.log อยู่ไหน ลองคำสั่งนี้หาได้ครับ db2 get dbm cfg | grep DIAGPATH ที่เครื่อง DB Server ครับ หลังจากรู้แล้วว่าคำสั่ง Load ก่อนให้เกิดปัญหาเจ้า SQL0290N Table space access is not allowed ต่อไปก็มาตรวจ Tablespace ครับ ว่าแต่ละตัวมีสถานะเป็นอย่างไร การแก้ไข ทำได้ 2 วิธีครับ จากนั้นลองรัน db2 LIST TABLESPACES SHOW DETAIL แล้วตรวจสอบ State ของ table space ครับ ต้องเป็น 0x0000 สุดท้ายลอง Restart Container ของ App Server (Web API) จบปิดเคสครับ Reference

จดๆจากงาน Data + AI Day 2025: Empowering Intelligence

สำหรับงานในวันนี้ก่อนอีกเลย ผมต้องขอบคุณทาง Skooldio ที่ได้จัดกิจกรรมแจกบัตรฟรีครับ และได้เป็นผู้โชคดีที่ได้รับบัตรเข้างานครับ เลยลองมาฟัง และจดสรุปเป็น Blog นี้ครับ คิดว่าน่าจะยาวนิดนึงนะครับ หัวข้อตามนี้ EMPOWERING INTELLIGENCE Speaker คุณสุดารัตน์ เอกธนมณี / คุณจตวัฒน์ เชี่ย 🚀 ตอนนี้ AI ถ้ามองในแง่ IQ แล้วความฉลาดมันเกินมนุษย์ เราไปแล้วนะครับ มันเก่งมาก🎓 แต่มันยังไม่เทียบเท่าคนเรา อันนี้วัดจากเกณฑ์ของคุณ Howard Gardner ความฉลาดมันมีหลายด้าน นอกจากเรื่องการใช้ตรรกะ การคำนวณ ยังมีส่วน มิติสัมพันธ์ (Spatial) หรือมนุษยสัมพันธ์ (Interpersonal) การเข้าใจผู้อื่นตรงนี้ AI ยังขาดไปนะ 🚀 และปิดท้าย ความเข้าใจมาจากคนเรา โดยความชัดเจนมาจากข้อมูล ที่มีความเร็วมาจาก Technolgy และ AI ช่วยทำให้มันต่อเนื่องได้ 2026 AND BEYOND: THE ROAD AHEAD FOR DATA & AI เส้นทางอนาคตคนทำงาน DATA & AI ต้องเตรียมรับมือ Speaker คุณเปรม โชติพานิช / คุณสรทรรศน์ คิรีรัตรจักริน / คุณวิธวินท์ ศรีเพียรพล / คุณธนณัฏฐ์ สันตติยานนท์ เป็น Talk ชวนคุยกับผู้เชี่ยวชาญด้าน AI 3 ท่าน คุณเปรม โชติพานิช (เปรม) Data Karate / คุณสรทรรศน์ คิรีรัตรจักริน บอยด์ (BigData RPG) / คุณวิธวินท์ ศรีเพียรพล (โร่) HowKnow…

ผม โดน พี่มาร์คปิด facebook ชั่วคราว

วันก่อนเป็นวันที่ช๊อคมากอยู่ๆ Facebook ก็โดนตาม Cover เลยครับ เหมือนมันขึ้นให้ยืนยัน น่าจะตอน 11 โมง แล้วกดไป สักพักตามรูป Cover เลยครับ ตอนแรกตกใจ เลยไปลองที่มือถือ มันมีปุ่ม Chat with support รอไปประมาณเกือบชั่วโมง คุยไปคุยมา เค้าบอกว่าเค้าสงสัยว่าเป็น fake account เดี๋ยวจะเด้ง Noti ให้ยืนยันตัวตนให้ สำหรับ Step ที่ผมโดน จากนั้นทำจบ เค้าบอกให้รอ วนมารูปเดิมแบบ Cover เลยครับ รอไปเรื่อยๆ ระหว่างนี้ ผมมีขอให้ เพื่อนลองช่วยส่องหน่อยว่าเข้าได้ไหม มีตอบทั้งได้ หรือ ไม่ได้บ้าง กว่าตัวเองจะเข้าได้ก็เกือบ 5 โมงครับ ถ้าโดนแบนถาวร คือ กรื๊ด 🛸 เพราะตัวเองไม่ค่อยมีรูป เก็บใน Facebook ทั้งหมด🛸 พบ Login แบบบางอันใช้ Facebook อย่าง Eventpop ที่จำได้นะ ที่จำไม่ได้อีกเพียบ🛸 ของบางอัน ผมใส่ใน messenger เก็บไว้ / กลุ่ม Page ด้วย🛸 ยังไม่ได้ตรวจด้วย อะไรหายไปบ้าง เห็นแว๊บ เพื่อนหายไปแน่ๆ จาก 9xx > 8xx แต่ส่วนใหญ่ไม่ค่อยได้คุยกันจริงจังเท่าไหร่ คนที่อยากคุยก็ Read 55 หลังได้ FB คืนมาตรวจก่อนเลยว่าพวกเมล์ เบอร์โทรโดนเปลี่ยนไหม ลองคิดดูว่าสมัครใหม่จะรอดไหม นี่สิ แต่ลองหาดูมีข่าวที่ใกล้เคียงกันนะ Meta เตรียมให้ “สแกนหน้า” ยืนยันตัวตน หลังบัญชีเซเลบฯ ปลอมระบาดหนัก ได้คืนมาแล้วรอลุ้นต่อไป หรือต้องจ่าย facebook รายเดือน

Try using NuGet Explorer to Pack dll into a NuGet Package (.nupkg)

For Thai Version: ลองใช้ NuGet Explorer มา Pack dll เป็น NuGet Package (.nupkg) I was organizing various data onto my NAS and found some screenshots I had captured but never wrote a blog post about. After reminiscing for a while, I remembered – it’s a method for taking .NET DLLs that might be remnants of legacy code where the source code is lost, leaving only the DLL, and turning them into NuGet Packages. Creating NuGet Packages has several advantages: For this machine, it’s a GUI tool called NuGet Explorer. Steps to Pack dll into NuGet Package (.nupkg) using NuGet Explorer…

เพิ่ม GitLab Runner โดยใช้ Authentication Token

พอดีเข้าช่วยขยับ GitLab 18 เลยมาดูตัว Runner สักหน่อย ลอง Add ด้วยวิธีเดิมมันจะเตือนเราเบาๆ แล้วว่า จากคำสั่งเดิมที่ใช้กัน จุดที่สังเกตุเป็น -r registration token มันจะมีการเปลี่ยนแปลงไป จากเดิมใช้ Registration Tokens จะมาเป็น Authentication Tokens แทนครับ ซึ่งมีความแตกต่าง ดังนี้ โดยแผนของ GitLab ใน Ver 15 เปิดตัว Authentication Tokens / Ver 17 ไม่ให้สร้าง Registration Tokens และจะเอาออกถาวรใน Ver 20 สำหรับขั้นตอนการ Register Runner โดยใช้ Authentication Tokens มีวิธีการ ดังนี้ เปิดสิทธิ user ที่เราต้องการ ให้มีสิทธิ create_runner ทำได้หมดผ่าน Web UI หรือ API เราจะได้ PAT Token มาแล้ว เก็บไว้ให้ดีครับ จะเอามาใช้งานใน Step ถัดไป จากนั้นมาขอ Token โดยเอา PAT Token ที่เราขอ create_runner มาใช้นี่แหละครับ แล้วยิงผ่าน API /api/v4/user/runners ผลลัพธ์มันจะได้ Token ออกมาประมาณนี้ครับ จากนั้นเอา Token ที่ได้ ขึ้นต้นด้วย glrt-xxx-xxx ไป ให้ Runner ใช้งาน ในกรณีที่มี Runner หลายตัวให้ ขอ Token หลายๆรอบตามจำนวน Runner ที่มี ถ้าเอา…

จดๆจาก From Chaos to Clarity จูนทีมเทคให้ตรงจุดจนสร้าง Product ได้ตรงใจ

สำหรับวันนี้มาเกือบไม่ทัน 555 Run Tests ทิ้งไว้ แล้วรีบมางานที่ตึก K+ สามย่านครับ หัวข้อที่จดได้มีประมาณนี้ Key Note – From chaos to clarity Speaker Thanawit Prasongpongchai สำหรับ Key ของ Session นี้เข้าใจ Role อื่น เพื่อมาปรับการทำงานของตัวเองครับ 📌 อย่างตัว Speaker เค้าเป็นส่วนของ Designer มีปัญหานิดหน่อยในการสื่อสารกับ Dev เลยมีการพูดคุย จูนจนได้ และมี Blog เรื่อง Devๆ ที่ UX Designer ควรรู้: แอปกับ Server คุยกันยังไง และทำไม Designer ต้องรู้เรื่องนี้? (มี 3 ตอนนะ) ลองไปอ่านได้ครับ ไม่จำเป็นต้อง Code ได้ แต่ควรเข้าใจศัพทฺ์เฉพาะของคนที่ต้อง Deal ด้วย เคสนี้สาย Dev เพื่อจะได้คุยไปในทางเดียวกัน 📌 นอกมีเล่าเคสจาก The Money-Making Secrets Behind Hotel Design อันนี้เป็นมุมของฝั่งสถาปนิก เค้าไม่ได้ทำงานในส่วนของเค้าเพียงอย่างเดียวนะ คิดในมุมของ Role อื่น และมีการปรับ Design ย้าย mini bar ของแต่ละห้องมาพื้นที่ส่วนกลางแทน 📌 แต่การเข้าใจมุมมองของคนอื่น อันนี้ Speker จะยก paper Many hands make overlooked work: Over-claiming of responsibility increases with group size…

วังวนใหญ่ – เมื่อปักใจเชื่อ เวลาจะเป็นการพิสูจน์

บางครั้งในงาน Dev เราอาจเจอสถานการณ์ที่ solution ที่เสนอไปไม่ได้รับการ adopt ทันที แต่กลับวนกลับมาอีกครั้งหลังผ่านไปหลายปี ตัวอย่างหนึ่งที่น่าสนใจ ตามนี้ Auto Update 📌 idea แรก อยากให้ ClickOnce แต่เราบอกแล้ว มันไม่ work เลยทำ client app ตัวเล็กๆ มาให้ และดึง จาก port 80 นี่แหละ + check sum และมี flag บอกอะไรไหมเป็น mandatory ไหม เมื่อปี 2017 ตอนนั้นเอา Lib AutoUpdater.NET + เขียน Code เพิ่มฝั่ง Client และทำหน้า Manage ฝั้ง Spring ไว้ 📌 Lead ยุคนั้นไม่กล้าทดสอบ และเสนอลูกค้า เนื่องจากการไล่ลงที่เครื่องมีความแม่นำยามากกว่า เลยได้ลองแต่ภายในวง BA ไป 3-4 ปี ท้ายที่สุด server ที่ใช้ถูกเอาไปทำ project อื่นที่มีความสำคัญมากกว่า และเป็นอีกวังวนใหญ่ 📌 แล้วปี 2019 ปัญหานี้กลับมาอีกรอบจาก Site ลูกค้า แล้วมีน้องมาทำด้วย Idea ClickOnce ก่อนลาออกไปบอกทำสำเร็จแล้วด้วย แต่เมื่อ review จริงๆ พบว่ายังใช้งานไม่ได้ และได้ feedback ว่าทีมยังไม่มีความชำนาญในการ setup ClickOnce 📌 ปี 2025 มีทีมใหม่มา implement ต่อ และน่าสนใจที่ solution สุดท้ายกลับมาใช้แนวคิดเดิมจากปี 2017 แต่เขียน code…

เมื่อ DEV ลองไป Workshop Windows Server and Active Directory Domain Services

สำหรับเสาร์ อาทิตย์ที่ผ่านมาได้มีโอกาศแวะมาฟังอาจารย์ Thanyapon Sananakin อ.ตุล Microsoft MVP มาเล่า และพาทำ Workshop Windows Server and Active Directory Domain Services จากกิจกรรม Knowledge Sharing ของทางกลุ่ม Zabbix in Thailand ครับ Introduction to Windows Server 📌 Server เป็นเครื่องที่มีประสิทธิภาพสูง เอาไว้ให้บริการต่างๆตามที่ Client ร้องขอ อย่าง เช่น Web / File Share / Authen เป็นต้น📌 พวก HW Server มีหลายแบบ 📌 นอกจากนี้ Server ยังมี 📌 จุดเด่นของ Windows Server เพิ่งรู้ว่ามีนอกจาก Windows Container มีส่วน Hyper-V Container (คุม Resource ได้) Edition จำนวน VM ใน Hyper V – Standard 2 vm – Data Center Unlimited VM- Azure Editionพวก Edition สูงๆ ทำพวก Software Defined อย่าง Network / Storage ได้ Core Licensing จำนวน Core ของ CPU User Calc Licensing…

Connection String สำหรับ App ที่ต่อกับ MSSQL ที่กำหนด MultiSubnetFailover

Microsoft SQL Server

MultiSubnetFailover ใน MS SQL Server คือ อะไร เป็น Feature ที่ช่วยเรื่อง High Availability (HA) หรือ Disaster Recovery (DR) ของฝั่ง Database ที่ Implement Always On Availability Groups หรือ Failover Cluster Instances (FCI)  โดย Key ของมันจะเข้ามาแก้ ใน App ต้องปรับอะไรบ้าง ? เติม MultiSubnetFailover=True เข้าไปใน connection string ดังนี้ DOTNET (appsetting.json) JAVA SPRING (yaml) Reference