Skip to main content

Systems IBM >  IBM Mainframe > 

IBM Student Mainframe Contest

IBM Students Mainframe Contest

  Registration
  Part 1: Breaking the ice
  Part 2: Practical experience
  จำกัดสำหรับผู้ที่ผ่านด่านท ี่สอ งอย่างถูกต้อง 40 ท่ านแรก
ฝึกฝนประสบการณ์: โจทย์ที่ 2

ระยะเวลาเข้าร่วมกิจกรรมโดยประมาณ: 5 ถึง 10 ชั่วโมง

เรื่องสำคัญ: ก่อนเข้าร่วมการแข่งขันโจทย์ที่ 2 นี้ คุณต้องผ่านทุกขั้นตอนของโจทย์ที่ 1 เสียก่อน ผู้เข้าแข่งขันที่ร่วมการแข่งขันโจทย์ที่ 1 ยังไม่เรียบร้อยแล้วเข้าร่วมการแข่งขันในโจทย์ที่ 2 นี้จะไม่ได้รับการพิจารณาตัดสิน

วัตถุประสงค์ของโจทย์การแข่งขันส่วนนี้คือ ต้องการให้คุณสร้างความคุ้นเคยกับงานที่ทำบนเมนเฟรมในฐานะซิสเ ต็มโปรแกรมเมอร์ โดยความท้าทายอยู่ที่คุณต้องจัดการงานทั่วๆ ไปในห้องปฏิบัติการที่ใช้เมนเฟรม z/OS ได้สำเร็จ

ขั้นตอนการร่วมกิจกรรมในส่วนนี้ไม่ได้ครอบคลุมรายละเอียดทั้งหมด คุณจำเป็นต้องมีเครื่องมือหรือแหล่งข้อมูลอื่นๆ ช่วย พร้อมกับการค้นพบประสบการณ์ใหม่ๆ บนเมนเฟรมให้เชี่ยวชาญยิ่งขึ้น เพื่อที่เอาชนะการแข่งขันให้ได้

โดยสำหรับผู้เข้าแข่งขัน 15 ท่านแรกที่ร่วมกิจกรรมส่วนนี้สำเร็จและถูกต้อง 100 เปอร์เซ็นต์ แต่ละท่านจะได้รับ iPod nano 4GB เป็นของรางวัล ขอให้โชคดี

ขั้นตอนโดยรวม:
ก่อนเริ่มต้น: ที่ไหนบ้างที่จะให้ข้อมูลช่วยเหลือคุณได้

ในการแข่งขันหากคุณติดปัญหาใดๆ หรือสนใจอยากจะรู้รายละเอียดเพิ่มเติมเกี่ยวกับเมนเฟรม คุณสามารถค้นหาข้อมูลหรือเครื่องมือต่างๆ ของเมนเฟรมได้จาก:

  • Introduction to the New Mainframe (US): หนังสือวิชาการฉบับใหม่ ที่ให้ข้อมูลพื้นฐานและข้อมูลทั่วๆ ไป เกี่ยวกับเมนเฟรมได้ดี

  • z/OS Library Centre (US): ประกอบด้วยเอกสารด้านเทคนิคที่เกี่ยวกับ z/OS ของไอบีเอ็มทั้งหมด ที่มีมากกว่านับร้อยนับพันรายการ ให้คุณค้นหาข้อมูลเอกสารหรือหนังสือ แล้วคุณจะได้รู้ทุกอย่างที่ไม่เคยรู้เกี่ยวกับเมนเฟรม

  • ABCs of System Programming, Volume 9 (US): เขียนโดยผ ู้ใช้ระบบ ดังนั้นจึงเป็นแหล่งข้อมูลที่เหมาะอย่างยิ่งสำหรับซ ิสเต็มโ ปรแกรมเมอร์

  • Message LookAt Facility (US): ถ้าคุณได้รับข้อความแจ้งเตือนถึงข้อผิดพลาดจากระบบ ที่นี้จะช่วยให้คุณค้นหารายละเอียดเกี่ยวกับข้อผิดพลาดนั้นๆ

  • Mainframe blog (US): เป็นบล็อกด้านเมนเฟรม ที่ให้คุณมีโอกาสแลกเปลี่ยนประสบการณ์ ไอเดียหรือพูดคุยแบบอินเทอร์แอ็กทีฟร่วมกับผู้สนใ จเมนเฟรมท่านอื่นๆ

  • z/OS Hot Topics newsletters (US): ให้คุณติดตามข่าวล่าสุดด้านเทคโนโลยีของ z/OS ได้ทีนี่


Back to top


(1) เตรียมชุดข้อมูล (Data Set) สำหรับกิจกรรมส่วนที่ 2 ของคุณ
สาเหตุ: ถึงตรงนี้คุณเคยสร้างชุดข้อมูล (Data Set) แต่หากยังไม่แน่ใจ คุณสามารถย้อนกลับไปฝึกได้ใน “ทำความรู้จักกับเมนเฟรม: โจทย์ที่ 1”

สิ่งที่คุณต้องทำ::สร้างชุดข้อมูล (Data Set) ในชื่อ ‘SMC####.SMC####.ZOS.PART2’ โดยชุดข้อมูล (Data Set) นี้ควรตั้ งค่า Primary Allocation เป็น 5 และ Secondary Allocation เป็น 3 จุดสำคัญ: ถ้าคุณไม่ใช้ยูสเซอร์เนมของคุณติดกันสองครั้งในชื่อชุดข้อมูล (Data Set) การแข่งขันในโจทย์ที่สองของคุณจะไม่ได้รับการตัดสิน ดังนั้นดูให้ดีว่าชื่อที่คุณสร้างต้องประกอบด้วยยูสเซอร์เนมของคุ ณสองครั้ง

ชุดข้อมูล (Data Set) ที่คุณสร้างนี้จะเก็บข้อมูลที่คุณทำทั้งหมดในการแข่งขันโจทย์ที่ 2 นี้ และคุณจะต้องส่งชุดข้อมูล (Data Set) นี้ให้ไอบีเอ็มหลังจากเสร็จสิ้นทุกขั้นตอนในโจทย์นี้ โดยในขั้นตอนต่อไปจากนี้ทั้งหมดเราจะเรียกชื่อชุดข้อมูล (Data Set) นี้สั้นๆ ว่า ZOS.PART2 เท่านั้น

Back to top


(2) รันโปรแกรม REXX ด้วย JCL
สาเหตุ: ใน “ทำความรู้จักกับเมนเฟรม: โจทย์ที่ 1” คุณได้ลองรันโปรแกรม REXX ง่ายๆ จากบรรทัดคำสั่งไปแล้ว ถึงตอนนี้เราอยากให้คุณรันโปรแกรมเดียวกันในแ บบเบื้องหลัง (Batch) โดยในระบบปฏิบัติการ z/OS มีวิธีการประมวลผลที่แตกต่างกันสองแบบคือ การประมวลผลแบบอินเตอร์แอ็กทีฟทำงานทันทีให้คุณเห็น กับแบบ นันอินเตอร์แอ็กทีฟ คือทำงานอยู่เบื้องหลังโดยที่คุณไม่รู้ โดยงานทั้งหมดที่คุณทำในกิจกรรมส่วนที่หนึ่งนั้น เป็นงานที่ทำแบบอินเตอร์แอ็กทีฟคือ ทำแล้วแสดงผลเห็นในทันที ซึ่งแม้คุณสามารถทำอะไรได้หลายอย่างในแบบแสดงผลทันที แต่หากคุณรันโปรแกรมที่ใช้เวลาในการประมวลผลนานละ คุณจะไม่สามารถทำอะไรอย่างอื่นได้เลยในเซสซันที่คุณทำงานอยู่ แต่หากคุณนำโปรแกรมที่ประมวลผลนานไปรันในแบบแบ ตซ์หรือรันแบบ ทำงานอยู่เบื้องหลังแล้ว คุณก็ยังสามรถทำงานอื่นๆ แบบแสดงผลทันที ในขณะที่อีกโปรแกรมหนึ่งทำงานอยู่เบื้องหลัง

ในการสั่งงานให้โปรแกรมทำงานอยู่เบื้องหลังนั้น คุณจำเป็นต้องรู้จักใช้ z/OS ผ่าน JCL หรือ Job Control Language แล้วแปลง JCL ของคุณให้เป็น JES (Job Entry Subsystem) แล้วระบบจะจัดเตรียมทรัพยากรสำคัญต่างๆ ให้โปรแกรมของคุณ และรันให้มันทำงาน

JCL เป็นสุดยอดภาษาการโปรแกรมอีกชนิดหนึ่ง ที่มีความยากมากเมื่อเทียบกับภาษาการโปรแกรมอื่นๆ JCL ได้รับการคิดค้นและพัฒนาขึ้นมานานกว่า 30 ปีแล้ว JCL ใช้สำหรับแปลงคำสั่งโปรแกรมต่างๆ ที่เขียนขึ้นให้เป็นงานที่เข้าใจได้ เพราะซิสเต็มโปรแกรมเมอร์ส่วนใหญ่จะเรียกหาไฟล์ JCL (คนในวงการเมนเฟรมส่วนใหญ่เรียกสั้นๆ ว่า “Job”) ที่ใช้ทำงานอะไรที่ตรงกับที่เขาต้องการหรือใกล้เคียงกับที่ต้องการ แล้วนำมาปรับแต่งอีกเล็กน้อยให้เหมาะกับที่ต้องการ ซึ่งคุณเองก็ต้องทำเช่นกัน

สิ่งที่คุณต้องทำ: มีชุดข้อมูล (Data Set) ในระบบชื่อ ZOS.CONTEST.JCL โดยมีสมาชิก (Member) ชื่อ RUNREXX ที่มีคำสั่ง JCL ที่คุณต้องการใช้งานอยู่ภายใน ให้คุณสำเนาสมาชิก (Member) นี้ ลงใน SMC####.PDS.CNTL ของคุณ โดยทำตามขั้นตอนดังนี้:
  1. เปิดชุดข้อมูล (Data Set) ZOS.CONTEST.JCL แล้วค้นหาสมาชิก (Member) ชื่อ RUNREXX ให้พบ แล้วใส่คำสั่ง V ที่ฟิลด์คำสั่ง
  2. ต่อไปคุณต้องบอกระบบให้รู้ว่าข้อความบรรทัดไหนบ้างที่จะส ำเนาของชุดข้อมูล (Data Set) สมาชิก (Member) อันใหม่ ซึ่งคุณสามารถทำได้ด้วยคำสั่ง CC ที่คุณเรียนรู้มาแล้วจากโจทย์ที่หนึ่ง (หรือคุณจะใช้คำสั่ง C### ที่ด้านหน้าบรรทัดแรกของ JCL โดย ### หมายถึงจำนวนบรร ทัดที่คุณจะสำเนา แล้วถ้าหากจำนวนที่คุณใส่ไปมากกว่าจำนวนบร รทัดจริงที่มี คำสั่ง C### จะสำเนาข้อมูลทั้งหมดในสมาชิก (Member))
  3. บนบรรทัดคำสั่ง ให้คุณพิมพ์คำสั่ง CREATE PDS.CNTL(RUNREXX) ยังจำได้ไหมว่าระบบจะใส่รหัสยูสเซอร์ของคุณอัตโน มัติที่ด้านหน้าชื่อ ถ้าคุณไม่ใส่เครื่องหมายคำพูดครอบชื่อชุดข้อมูล (Data Set) โดยคำสั่งนี้จะสำเนาข้อความที่คุณได้ใช้คำสั่ง C# หรือ CC ทำสำเนาไว้ แล้วคัดลอกลงในชุดข้อมูล (Data Set) SMC####.PDS.CNTL ของคุณเอง โดยกำหนดชื่อส มาชิก (Member) ว่า RUNREXX
โดยเมื่อคุณสร้างสำเนาของ RUNREXX ลงบนชุดข้อมูล (Data Set) ของคุณเองแล้ว ให้เปิด ISPF Editor แล้วแก้ไขดังนี้:
  1. เปลี่ยน your_user_id เป็นยูสเซอร์เนม SMC#### ของคุณ
  2. เปลี่ยน your_member_nam เป็นชื่อของสมาชิก (Member) PDSE ที่คุณตั้งไว้ในโจทย์ที่หนึ่ง (จากตัวอย่างโจทย์ที่หนึ่งตั้งไว้คือ SHANE)
ไปที่บรรทัดคำสั่ง พิมพ์คำสั่ง SUB (หมายถึง Submit) แล้วกดปุ่ม Ctrl ระบบจะส่งงานของคุณไปยัง JES เพื่อโพรเซสต่อไป เห็นไหมว่าไม่ยากเลยใช่ไหม แต่คุณยังติดปัญหาว่าจะไปหาผลลัพธ์ของงานที่คุณทำได้ที่ไ หนถูกไหม?

คำตอบก็คือ SDSF ซึ่งหมายถึง Spool Display and Search Facility ในการเรียกใช้งาน SDSF จากระบบนี้ให้คุณไปที่เมนู ISPF Primary Option แล้วเลือกคำสั่ง S แต่หากคุณไม่ได้อยู่ที่หน้าจอ ISPF Primary Option ก็สามารถสั่งคำสั่งนี้ได้เพียงพิมพ์ =S ที่บรรทัดคำสั่งก็ได้เช่นกัน

ที่หน้าจอหลักของ SDSF ให้พิมพ์คำสั่ง OWNER SMC#### คำสั่งนี้กำหนดให้แสดงเฉพาะจ็อบของคุณ และเพื่อมองเห็นจ็อบทั้งหมดที่คุณมีอยู่ ให้พิมพ์ H ALL เพื่อดูผลลัพธ์ทั้งหมดของคุณ แต่หากต้องการดูผลลัพธ์บางอย่างที่ระบบสร้างขึ้น ให้ใส่ ? ด้านข้างจ๊อบของคุณ (JOBNAME เฉพาะของ JCL ของคุณคือ REXX) แล้วกดปุ่ม Ctrl ใส่คำสั่ง S (หมายถึง Select) ลงไปที่ด้านข้างของแต่ละชิ้นเพื่อดูว่าจะเกิดอะไรขึ้นเมื่อคุณรันจ๊ อบของคุณ ถึงตอนนี้ให้คุณย้อนกลับมยังหน้าจอที่แสดงรายการ REXX ในค ิวผลลัพธ์ ให้ใส่ S ด้านข้าง REXX และกดปุ่ม Ctrl ตอนนี้สิ่งที่คุณเห็นเป็นผลลัพธ์เดียวกับจ็อบที่คุณใส่ ? ไว้ ทีนี้คุณก็พอรู้แล้วว่าการลิงก์ผลลัพธ์มาแสดงผลในหนึ่งหน้าจอเพ ื่อให้ดูได้ง่ายๆ อย่างไร

หลังจากตรวจสอบแล้วว่าจ็อบของคุณทำงานได้ผลลัพธ์เดียว กับที่คุณทำใน “ทำความรู้จักกับเมนเฟรม: โจทย์ที่หนึ่ง” ให้คุณเขียนผลลัพธ์ทั้งหมดลงในสมาชิก (Member) ในชุดข้อมูล (Data Set) ZOS.PART2 แล้วตั้งชื่อว่า REXXRUN โดยการเขียนผลลัพธ์ลงสมาชิก (Member) นั้น ให้ใช้คำสั่ง XDC หน้าจ็อบ โดยคุณต้องแน่ใจแล้วว่าได้พิมพ์ XDC ลงไปที่ด้านหน้าของผลลัพธ์ REXX ทุกตัวแล้ว เพื่อให้แน่ใจว่า JESMSGLG, JESJCL, JESYSMSG, SYSTSPRT และ OUTDD ทั้งหมดจะถูกส่งไปยังสมาชิก (Member) เดียวในชุดข้อมูล (Data Set) ZOS.PART2 จากเมนู XDC ให้คุณตรวจสอบดูชื่อชุดข้อมูล (Data Set) ชื่อสมาชิก (Member) ที่ในบันทึกและจัดการ (OLD) นอกนั้นคุณก็ใช้ค่ามาตรฐานที่ตั้งไว้แล้ว และกดปุ่ม Ctrl

ถึงตอนนี้คุณจะได้สมาชิก (Member) ใหม่ในชุดข้อมูล (Data Set) ZOS.PART2 ของคุณ ลองเข้าไปดู เพราะตอนนี้คุณได้หมัดเด็ดๆ อีกหมัดหนึ่งแล้ว


Back to top


(3) แก้ไขดีบัก JCL ที่ผิดพลาด
สาเหตุ: ในฐานะซิสเต็มโปรแกรมเมอร์ คุณจะต้องใช้ JCL ทำงานมากมาย จึงอาจเกิดข้อผิดพลาดบางอย่างได้ อย่างเช่น ลืมใส่เครื่องหมาย วรรคตอน หรือโค้ดของคุณทำงานถึงบรรทัดที่ 72 แล้วหยุด ซึ่งในหลายๆ กรณี ระบบจะแจ้งเตือนข้อผิดพลาดของ JCL ให้คุณทราบ

สิ่งที่คุณต้องทำ: แก้ไขข้อผิดพลาดง่ายๆ ของ JCL ให้คุณสำเนา ZOS.CONTEST.JCL(BADJCL) ลงในชุดข้อมูล (Data Set) PDS.JCL ของคุณเองด้วยชื่อสมาชิก (Member) ใหม่ที่คุณตั้งเอง แล้วสั่ง Submit ทีนี้คุณก็มี JCL ที่มีข้อผิดพลาดพร้อมให้คุณแก้แล้ว

ตรวจสอบผลลัพธ์ข้อผิดพลาดใน SDSF แล้วแก้ไขให้เรียบร้อย คำแนะนำ: ลองนำรหัสข้อความแจ้งเตือนจาก JESYSMSG ไปค้นหาใน LookAt facilityดู แล้วคุณจะได้รับข้อมูลที่มีประโยชน์ (รหัสข้อความแจ้งเตือนเริ่มต้นที่คำว่า IEF) ระบบปัจจุบันที่คุณใช้อยู่คือ z/OS เวอร์ชัน V1R6

หลังจากคุณแก้ไขข้อผิดพลาดต่างๆ และลองรันจ็อบเป็นปกติโดยไม่มีข้อความแจ้งเตือนของ JCL แล้ว ให้กลับไปที่ SDSF คุณจะพบกับผลลัพธ์ใหม่ปรากฎขึ้นมา เพื่อยืนยันว่าคุณได้ผลลัพธ์ใหม่ที่ถูกต้องแล้ว ให้ใช้คำสั่ง XDC กับทุกผลลัพธ์จากงานของคุณลงในชุดข้อมูล (Data Set) ZOS.PART2 แล้วกำหนดชื่อสมาชิก (Member) ว่า FIXEDJCL และอีกครั้ง เพื่อยืนยันว่าคุณสั่ง XDC ให้กับ JOBNAME (ไม่ใช่ DDNAME) เรียบร้อย ในสมาชิก (Member) ใหม่ของคุณจะต้องประกอบด้วย JESMSGLG, JESJCL และ JESYSMSG และผลลัพธ์ของงานใหม่ด้วย

เพียงเท่านี้ก็เท่ากับคุณได้ของแก้ไขดีบัก JCL เป็นแล้ว

Back to top


(4) ตรวจสอบข้อมูลการตั้งค่า TCP/IP
สาเหตุ: ในฐานะซิสเต็มโปรแกรมเมอร์ คุณอาจถูกเรียกตัวเพื่อแก้ไขระบบที่คุณอาจไม่คุ้นเคย หรือคุณอาจมีระบบมากมายที่ต้องตรวจสอบเฝ้าดู ไม่ว่าในกรณีไหน คุณจำเป็นต้องรู้วิธีการดูข้อมูลการตั้งค่าพื้นฐานของระบบ

สิ่งที่คุณต้องทำ: ตรวจสอบข้อมูลการตั้งค่า TCP/IP บนเครื่องนี้ ซึ่งมีหลายวิธีการในการค้นหาข้อมูลเหล่านี้ แต่เพราะยูสเซอร์เนมของคุณถูกจำกัดสิทธิ์ ดังนั้นเราจึงต้องใช้วิธีที่ไม่ธรรมดาเสียหน่อยในการตรวจสอบครั้งนี้

จากหน้าจอเตรียมพร้อมของ SDSF ให้พิมพ์คำสั่ง OWNER ซึ่งจะทำให้คุณเห็นจ็อบทั้งหมดในระบบ ไม่ใช่เพียงแค่จ็อบของคุณ

ค้นหา TCPIP proc (งาน) ในรายการ “Active users” แล้วดูที่ JCL ที่พึ่งจะเริ่มต้นทำงาน คุณจะเห็นว่าจ็อบส่วนใหญ่จะมีคอมเม้นท์ใส่ตัวอักษร * ของแต่ละบรรทัด อย่างไรก็ดี คุณจะเห็นว่ามี JCL รันอยู่มากมาย ให้ค้นหา PROFILE DD ที่มีการ์ดเป็นแอ็กทีฟ (คำว่า “การ์ด” ในภาษาเมนเฟรมหมายถึงสถานะ) แล้วคุณจะได้เห็น ชื่อชุดข้อมูล (Data Set) เปิดชุดข้อมูล (Data Set) สมาชิก (Member) ที่มีสถานะ PROFILE DD แสดงอยู่

ในชุดข้อมูล (Data Set) สมาชิก (Member) ที่เปิดขึ้นมา ให้คุณดูที่เซกซันที่เริ่มต้นด้วย AUTOLOG ซึ่งเป็นรายการงานทั้งหมดที่เริ่มต้นทำเมื่อ TCP/IP เริ่มทำงาน ให้สำเนาสามบรรทัดแรกจากเซกชัน PORT ลงในสมาชิก (Member) ใหม่ชื่อว่า TCPCONF ในชุดข้อมูล (Data Set) ZOS.PART2 ของคุณ ซึ่งมีวิธีการสำเนาหลายวิธี คุณอาจใช้เครื่องมือที่มีประโยชน์อย่างเมาส์ของคุณใน การเลือกข้อความ แล้วสั่ง Edit -> Copy บนโปรแกรมจำ ลอ งการทำงาน 3270 (3270 Emulator) ของคุณ (แล้วค่อยสั่ง Edit -> Paste ลงบนสมาชิก (Member) ใหม่ของคุณ)

จากบรรทัดคำสั่ง TSO ในหน้าเมนู ISPF ให้ใช้คำสั่ง NETSTATAT CONN เพื่อดูรายการพอร์ตที่ FTPD1 ใช้อยู่ คำแนะนำ: คำสั่ง NETSTAT ? จะแสดงวิธีใช้คำสั่งทั้งหมด ซึ่งคุณสามารถลดผลลัพธ์ของคำสั่งนี้ให้แสดงเฉพาะพ อร์ตที่ คุณสนใจได้

จากนั้นให้สำเนาข้อมูลบรรทัดที่เกี่ยวข้องกับ FTPD1 ทั้งหมดลงต่อท้ายข้อมูลในสมาชิก (Member) TCPรตั้งค่า TCP/CONF ของคุณ ถึงตอนนี้คุณจะเห็นว่า FTPD1 เป็นพอร์ตรอรับข้อมูลที่ให้รายละเอียดในกาIP ทั้งหมดได้ โดยการตรวจสอบว่าเซิร์ฟเวอร์ FTPD นั่นพร้อมรอรับข้ อมูลหรื อคำสั่งใดๆ หรือไม่ คุณสามารถใช้ SDSF เพื่อดูพื้นที่ว่างได้ แต่จะไม่แสดงผลว่าพอร์ตใดว่างอยู่

ถึงตอนนี้คุณก็มีข้อมูลการตั้งค่าของ TCP/IP แล้ว
ซึ่งคุณสามารถตรวจสอบดูสถานะอ้างอิงของอุปกรณ์ที่ใช้เพื่อการติดต่ อสื่อสารกับระบบอื่นๆ (เหมือนกับการ์ดเน็ตเวิณ์กใน PC) ได้แล้วให้คุณสำเนาข้อมูลที่เกี่ยวข้อง ลงในสมาชิก (Member) TCPCONF ของคุณ ที่นี้คุณรู้หรือยังว่าคำสั่งใดที่ใช้เพื่อค้นหาข้อมูลจากอุปกร ณ์ที่คุณพึ่ง จะเพิ่มเข้าไปใน TCPCONF ?

ลองเล่นคำสั่งนี้อีกทีก็ได้นะ

Back to top



(5) สร้างหน้าเมนู ISPF ของคุณเอง
สาเหตุ: ในคอมพิวเตอร์พีซีคุณสามารถสร้างไอคอนใหม่ๆ ลงบนเดสก์ทอปของคุณได้เอง ฉันใดก็ฉันนั้นคุณก็สามารถปรับแต่งสภาพแวดล้อมการทำงานข องคุณบน z/OS ได้เช่นกัน โดยหน้าจออินเทอร์เฟสของ ISPF สามารถเขียนใหม่เพื่อปรับแต่งได้ตรงกับที่คุณต้องการ ซึ่งเป็นงานที่สำนักงานส่วนใหญ่ที่ใช้เมนเฟรมจะทำหลังจากได้เครื่ องเมนเฟรมไปครั้งแรก ซึ่งระบบในการแข่งขันครั้งนี้เราก็ปรับแต่งให้เหมาะกับกิจกรรมอยู่แล้ว อย่างที่คุณเห็นหน้าจอต้อนรับที่ปรับแต่งไปแล้ว

สิ่งที่คุณต้องทำ: เพิ่มคำสั่ง SDSF ลงในหน้าจอ ISPF ที่ปรับแต่งแล้วของคุณ

ออกจากหน้าจอเมนูจนกว่าจะถึงหน้าจอรอรับคำสั่งของ TSO ( ห รือพิมพ์ =x ใน ISPF เป็นคำสั่งลัด) แล้วพิมพ์ ex 'ZOS.CONTEST.CLIST(BLANKPNL)' คำสั่งนี้จะสร้างหน้าจอ ISPF ใหม่ที่ปรับแต่งได้ ซึ่งจะเป็นหน้าจอว่างๆ ที่จะมีแค่ฟังก์ชันที่เพียงพอต่อการทำงานในการสร้างหน้าจอให ม่ด้วยดีไซน์ของคุณเอง อย่างที่คุณได้เห็นว่าคำสั่ง Utility ก็ถูกลดลงไปเหมือนกัน

หมายเหตุ:ถ้าหากคุณต้องการจะเปลี่ยนหน้าจอกลับไ ปยังหน้าจอ ISPF แบบดั้งเดิม (อาจเป็นในกรณีที่คุณทำพลาดแล้วต้องการล้างหน้าจอกลับไ ปใช้หน้าจอดั้งเดิม) คุณสามารถใช้คำสั่ง LOGON SMC#### จากหน้าจอรอรับคำสั่ง TSO ได้เลย

ให้พิมพ์คำสั่ง PANELID บนบรรทัดคำสั่ง: คุณจะได้เห็นรหัสรายชื่อหน้าจอปรากฎบนมุมซ้า ย ถ้าค ุณไปยังเมนูอื่นๆ (อาทิ เลือกคำสั่ง 3) คุณก็จะได้เห็นรหัสหน้าจอเปลี่ยนไป ลองเปิดดูและตรวจสอบรหัสหน้าจอต่างๆ ดู คุณสามารถพบโค้ดคำสั่งสำหรับทำให้เมนู ISPF มีขนาดเล็กลองและเครื่องมืออรรถประโยชน์ (Utility) อื่นๆ ใน PDS (Partitioned Data Set ยังจำได้ไหม?) ชื่อ ZOS.CONTEST.PANELS โดยหน้าจอเมนู ISPF ที่มีขนาดเล็กลงและเครื่องมืออรรถประโยชน์ (Utility) จะทำงานสอดคล้องกับชื่อสมาชิก (Member) ใน PDS

ลองดูข้อมูลภายในของ ZOS.CONTEST.CLIST(BLANKPNL). จะได้พบกับรายชื่อชุดข้อมูล (Data Set) ที่เชื่อมโยงกันอยู่ รายชื่อเหล่านี้เป็นชุดข้อมูล (Data Set) ทั้งหมดที่อยู่ในหน้าจอเมนูอื่นๆ ที่คุณจำนวนต้องใช้ใน ISPF และด้วยความสามารถของ z/OS ที่อนุญาตให้ลิงก์เชื่อมโยงชุดข้อมูล (Data Set) ด้วยกัน ดังนั้นจึงสามารถเชื่อมโยงแต่ละอันเป็นชุดข้อมูล (Data Set) ใหญ่ได้ โดยหากมีสองชุดข้อมูล (Data Set) ที่มีสมาชิก (Member) ชื่อเดียวกัน ชุดข้อมูล (Data Set) ใดที่ได้ลิงก์ก่อนก็จะมีลำดับชั้นที่สูงกว่า อย่างที่คุณได้เห็นคำสั่ง CLIST (Command List) ใน ZOS.CONTEST.PANELS อยู่ในลำดับแรกของรายการ ซึ่งทำให้มีลำดับชั้นเหนือกว่าคำสั่งอื่นๆ โดยหน้าจอ ISPF แบบดั้งเดิมจะอยู่ใน CENTER.ISPPLIB ซึ่งอยู่ด้านล่างของรายการ

และต่อไปนี้คือขั้นตอนที่คุณต้องทำให้สำเร็จ:
  1. สำเนาชุดข้อมูล (Data Set) ZOS.CONTEST.PANELS ลงในชุดข้อมูล (Data Set) ของคุณ เพื่อให้คุณสามารถแก้ไขข้อมูลได้ ให้สำเนาชุดข้อมูล (Data Set) ทั้งหมดรวมถึงสมาชิก (Member) หรือข้อมูลอะไรก็ตามที่คุณยังไม่มี ด้วยวิธีการดังนี้:
    1. หาเครื่องมืออรรถประโยชน์ (Utility) สำหรับการย้ายหรือสำเนา Move/Copy Utility (ISRUMC1) จากหน้าจอหลัก ISPF ของคุณ
    2. เลือกคำสั่งสำเนา แล้วใส่ชื่อชุดข้อมูล (Data Set) ที่คุณจะสำเนาลงไป
    3. ที่หน้าจอถัดไป ให้คุณระบุชื่อชุดข้อมูล (Data Set) ที่คุณจะสำเนาไปไว้
    4. ที่หน้าจอถัดไป (ISRMCALL) ให้เลือก Allocation Option 1
    5. ที่หน้าจอถัดไป ให้ใส่ “s” ลงไปด้านข้างสมาชิก (Member) แต่ละตัวที่คุณต้องการสำเนาทั้งหมด
    6. ตรวจสอบดูว่าชุดข้อมูล (Data Set) ใหม่ของคุณมีสมาชิก (Member) ที่สำเนามาหรือยัง
  2. สำเนา ZOS.CONTEST.CLIST(BLANKPNL) ลงในชุดข้อมูล (Data Set) ของคุณเพื่อให้คุณสามารถแก้ไขข้อมูลได้
  3. เพิ่มคำสั่งลงในชุดข้อมูล (Data Set) ตัวสำเนาของ ZOS.CONTEST.PANELS เพื่อสร้างคำสั่ง SDSF จากหน้าจอ ISPF โล่งๆ ของคุณ ถึงตอนนี้หน้าจอใหม่ของคุณควรจะมีคำสั่ง SDSF ปรากฎอยู่ และสามารถสั่งโดยคำย่อให้ง่ายขึ้นได้ด้วย “S” หรือ “13” ได้ทั้งสองคำสั่ง อย่างไรก็ดีคุณสามารถสร้างความแตกต่างตาม ที่คุณเลือกได้แล้ว คำสั่ง SDSF สามารถเรียกใช้ได้อย่างถูกต้องจากหน้าจอของคุณ เพียงแค่พิมพ์คำสั่งลงไป (ใช้ “S” หรือ “SD” ก็ได้ตามที่คุณเลือก)
  4. แก้ไขสำเนา BLANKPNL ของคุณ แล้วคุณจะได้หน้าจอใหม่ที่มีลำดับขั้นสูงกว่า
  5. รันคำสั่ง CLIST ใหม่ของคุณจากหน้าจอรอคำสั่ง TSO READY เพื่อแสดงผลหน้าจอที่ปรับแต่งแล้วของคุณ
  6. หลังจากตรวจสอบแล้วว่าหน้าจอคำสั่ง SDSF ใหม่ของคุณทำ งานได้ถูกต้อง ให้สำเนาแล้วแปะข้อมูลหน้าจอของคุณลงในโปรแกรมจัดก ารข้อความทั่วไปใ นคอมพิวเตอร์ของคุณ (ในโปรแกรมจำลองการทำงาน Vista สาม ารถใช้คำสั่ง File -> Save Screen to Disk เพื่อสำเนาหน้าจอทั้งหมดของคุณลงใน C:\Program Files\Vista32\Vista.txt หรือคุณอาจใช้เมาส์ลากครอบทั้งหน้าจอ แล้ว เลือกคำสั่ง File -> Copy เพื่อบันทึกข้อมูลทั้งหน้าจอที่เลือกลงในคลิปบอร์ ดของคุณ แล้วคุณสามารถสั่งแปะข้อมูลในคลิปบอร์ดลงในโปรแกรมจัด การข้อความภายหลัง)
  7. จากนั้น FTP ไฟล์ข้อมูลหน้าจอของคุณไปยังชุดข้อมูล (Data Set) ZOS.PART2 ภายใต้ชื่อสมาชิก (Member) ว่า PANELPIC ด้วยคำสั่งดังนี้:
    1. ที่บรรทัดคำสั่งบนคอมพิวเตอร์ของคุณ ให้เปลี่ยนไปยังไดเรกทอรี่ที่คุณเก็บไฟล์ไว้.
    2. พิมพ์คำสั่ง ftp 129.35.161.131
    3. ใส่ยูสเซอร์เนมและพาสส์เวิร์ด
    4. พิมพ์คำสั่งโดยแก้ชื่อไฟล์เป็นชื่อที่ไฟล์จริงๆ ของคุณ ดังนี้: put textfilename datasetname(PANELPIC)
    5. ตรวจสอบว่าชุดข้อมูล (Data Set) ZOS.PART2 ของคุณมีสมาชิก (Member) ใหม่ที่ชื่อ PANELPIC หรือยัง
  8. ย้อนกลับไปที่ ISPF สำเนาสมาชิก (Member) ที่เก็บหน้าจอที่ปรับแต่งของคุณ (อันเดียวกับที่มีคำสั่ง SDSF และเริ่มต้นด้วย ISR) ลงใน ZOS.PART2 โดยใช้ชื่อสมาชิก (Member) เดิม
ทีนี้ไม่เพียงแค่คุณได้สร้างหน้าจอ ISPF ของคุณเองแล้ว แต่คุณยังได้เรียนรู้วิธีการ FTP ข้อมูลไปยังยูสเซอร์เนมข องคุณใน z/OS อีกด้วย เป็นไงดูเจ๋งไหมละ
Back to top



(6) ทักษะในการแก้ไขข้อผิดพลาดของ JCL
ลองดูใน ZOS.CONTEST.JCL(BADJCL2) จะเห็นว่ามันไม่ทำงาน และมีข้อผิดพลาดใน JCL แต่โชคดีที่การแก้ไขข้อผิดพลา ดของ JCL นั้น คุณทำเป็นแล้ว ให้คุณค้นหาข้อผิดพลาดแล้วแก้ไขให้เรียบร้อย และใช้ SDSF เพื่อบันทึกผลลัพธ์ที่ถูกต้องทั้งหมดลงในสมาชิก (Member) ชื่อ LASTJOB ในชุดข้อมูล (Data Set) ZOS.PART2 ของคุณ เมื่อสามารถทำงานได้ถูกต้องแล้ว จ๊อบนี้จะแสดงรายการข้อมูลเกี่ยวกับโมดูลต่างๆ
ซึ่งหากคุณมีความสนใจในการเขียนโปรกรมแอพพลิเคชัน คุณจะสนใจดูว่าจ็อบ AMBLIST นั้นแทำหน้าที่อะไร หรือถ้าคุณอยากจะรู้มากกว่าคนอื่น ก็เริ่มด้วยการเปิดดูพารามิเตอร์ของ JOB Card แบบเรียงทีละตัวเลย เพื่อดูว่าแต่ละตัวมีความหมายว่าอะไร

คำแนะนำ: แน่นอนถ้าคุณอยากรู้มากกว่าคนอื่นก็ต้อง เสีย เว ลามากกว่า เราจึงเตรียมคำแนะนำดีๆ ให้คุณ เช่น Initiators คือ ตำแหน่งพื้นที่ว่างที่ใช้สำหรับรันจ็อบเบื้องหลัง แทนที่จะรันจ็อบบนพื้นที่ว่างของคุณเอง สำหรับจ็อบที่ต้องการรัน คุณต้องการ Initiators ตัวเริ่มต้นที่เหมาะสม ให้คุณดูที่คำสั่ง INIT ใน SDSF แล้วหาข้อมูลเพิ่มเติมเกี่ยวกับ Initiators บนระบบ ถึงตรงนี้ได้เราขอบอกได้ว่าคุณพร้อมมากๆ แล้ว ขอให้โชคดี

Back to top



(7) เรื่องท้าทายในการแปลงข้อมูล
สาเหตุ: เมื่อคุณต้องทำงานเกี่ยวกับข้อมูลในระบบคอมพิวเตอร์นั้น ข้อมูลต่างๆ มักมีรูปแบบหรือฟอร์แมตขึ้นกับระบบที่ข้อมูลนั้น ถูกใช้งานอยู่ ทำให้ข้อมูลทั่วๆ ไปไม่สามารถอ่านได้ด้วยสายตาของมนุษย์ เพราะข้อมูลถูกเข้ารหัสตามฟอร์แมตของเครื่อง ตามระบบปฏิบัติการหรือตามประเทศที่ข้อมูลนั่นจัดเก็บอยู่ แต่ด้วย Extended Binary Coded Decimal Interchange Code (EBCDIC) ตัวย่อนี้อ่านออกเสียงว่า อิบ-สัท-ดิก ที่มีอยู่ในเมนเฟรมของไอบีเอ็มและคอมพิวเตอร์ขนาดกลางข องไอบีเอ็ม ซึ่งเป็นซอฟต์แวร์แปลงข้อมูล 8 บิตให้เป็นตัวอักษร

สิ่งที่คุณต้องทำ: ให้แปลงข้อมูลที่อยู่ใน ZOS.CONTEST.JCL(DATA) มาเป็นมสำคัญที่ผู้เข้าแข่งขันประจำปีนี้ต้องอ่าน แล้วจัดเก็บข้อมูลที่แปลงแล้วลงใน SMC####.SMC####.ZOS.PART2(DATA)

Back to top



(8) เขียนโปรแกรม REXX
สาเหตุ: งานล่าสุดที่คุณทำคือ รันโปรแกรม REXX แบบอินเทอร์แอ็กทีฟ (ประมวลผลแบบทันทีทันใด) และในแบบแบท (ประมวผลอยู่เบื้องหลัง) ดังนั้นในงานที่กำลังจะทำนี้จึงให้คุณลองเขียนโปรแกรม REXX ดู ซึ่งโปรแกรม REXX เป็นภาษาการโปรแกรมแบบอินเตอร์พรีเตอร์ จึงไม่ต้องคอมไฟล์เพื่อรันโค้ด (แม้ว่าจะมีคอมไฟล์เลอร์พร้อมให้ใช้ก็ตาม) วิธีการเขียนก็สามารถเรียนรู้ได้ง่ายๆ และใช้ประโยชน์และรันได้ในทุกแพลตฟอร์ม โดยต้นฉบับแรกเริ่มนั้นพัฒนาขึ้นเพื่อใช้ในเมนเฟรมของไอบีเอ็มที่ Hursley โดย ZOS.CONTEST.JCL(REXX) จะประกอบด้วย REXX แบบง่ายๆ ที่คุณสามารถเริ่มต้นลองได้ด้วยตนเอง

สิ่งที่คุณต้องทำ: สร้างโปรแกรมรันได้ของคุณลงใน SMC####.SMC####.ZOS.PART2(XMAS) โดยให้เขียนโปรแกรม REXX ที่ใช้คำนวณว่าวันคริสมาสต์ของปีนั้นๆ เป็นวันอะไร โดยข้อมูลที่ใส่คือ ปี โดยคุณสามารถดูฟังก์ชันการทำงานต่างๆ ที่ต้องใช้เขียนได้ใน

REXX Users Guide

Back to top



(9) ส่งผลงานทั้งหมดของคุณด้วย XMIT
ยินดีด้วย มาไกลขนาดนี้เหลืออีกนิดเดียวคุณก็จะร่วมการแข่งขันโจทย์ที่ 2 : ฝึกฝนประสบการณ์ สำเร็จลุล่วงแล้ว โดยหากคุณทำทุกขั้นตอนถูกต้อง ตอนนี้คุณต้องมีทั้งหมด 8 สมาชิก (Member) ในชุดข้อมูล (Data Set) SMC####.SMC####.ZOS.PARRT2 ของคุณ ได้แก่:

  1. REXXRUN จากขั้นตอนที่ 2
  2. FIXEDJCL จากขั้นตอนท 3
  3. TCPCONF จากขั้นตอนท 4
  4. PANELPIC จากขั้นตอนท5
  5. สมาชิก (Member) จากขั้นตอนที่ 5 (ซึ่งชื่อดังกล่าวเป็นชื่อที่คุณต้องหาขณะทำขั้นตอนที่ 5)
  6. LASTJOB จากขั้นตอนที่6
  7. DATA จากขั้นตอนท7
  8. XMAS จากขั้นตอนท8
ตรวจสอบผลลัพธ์งานของคุณให้ดีอีกครั้ง เพื่อชิงรางวัล iPod nano 4GB คุณต้องเป็น 15 ท่านแรกที่ทำทุกขั้นตอนสำเร็จถูกต้อง 100 เปอร์เซ็นต์ ซึ่งหากคุณแน่ใจในคำตอบของคุณแล้ว ให้สั่ง XMIT เพื่อส่งชุดข้อมูล (Data Set ) ZOS.PART2 PDSE ของคุณให้กับ BABEYS

และถ้าคุณเป็นหนึ่งใน 15 ท่านแรกที่ทำทุกกระบวนการได้สำเร็จถูกต้องและส่งชุดข้อมูล (Data Set) ของคุณให้กับ BABEYS แล้ว ไอบีเอ็มจะติดต่อคุณภายใน 15 วันทำการหลังจากที่คุณส่งข้อมูลเสร็จ

Back to top



(10) ขั้นตอนต่อไป?
ไม่ว่าคุณจะเป็น 15 ท่านแรกที่ทำสำเร็จหรือไม่ ถึงตอนนี้ก็เท่ากับว่าคุณได้ฝึกฝนทักษะความสามารถด้านเม นเฟรมเพียงพอแล้ว มีบริษัทมากมายที่ต้องการคนมีประสบ การณ์เช่นคุณ อย่าลืมใส่ความสามารถเหล่านี้ไว้ในจดหมายแนะนำตัวของคุณล่ะ

และถ้าหากคุณสนใจศึกษาเพิ่มเติมเกี่ยวกับเมนเฟรม แต่วิทยาลัยหรือมหาวิทยาลัยของคุณไม่มีเครื่องหรือวิชาให้เรีย นเพิ่มเติม คุณสามารถปรึกษากับครูอาจารย์ของคุณถึงโครงการ IBM Academic Initiative ได้ เพราะไอบีเอ็มมีคอร์สวิชาและเอกสารเพิ่มเติมเกี่ ยวกับเมนเฟ รมให้นิสิตนักศึ กษาและครูอาจารย์ได้เรียนรู้เพิ่มเติมฟรี โดยคุณสามารถดูรายละเอียดเพิ่มเติมได้ที่โครงการ Academic Initiative System z program (US).

โดยสำหรับโจทย์ทั้งสองส่วนแรกของการแข่งขันนี้ เราได้จัดเตรียมบัญชีผู้ใช้ให้คุณบน z/OS ร่วมกับผู้เข้าแข่งขันท่านอื่นๆ แต่สำหรับในกิจกรรมส่วนที่ 3 นี้ เราจะเปิดบัญชีผู้ใช้บน z/OS ให้เฉพาะคุณ ดังนั้นสำหรับโจทย์ที่สามนี้คุณต้องจับตาดูในเว็บไซต์นี้ให้ดี เพราะโจทย์จะเปิดเผยในไม่ช้านี้แล้ว

ขอขอบพระคุณอย่างสูงที่เข้าร่วมการแข่งขันในโจทย์ที่ 2 ของการแข่งขัน Student Mainframe Contest ครั้งนี้ และขอให้โชคดีในการแข่งขันส่วนที่ 3

Back to top



We're here to help
Easy ways to get the answers you need.
Contact IBM
Request a quote Request a quote