рдирдорд╕реНрддреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рд╡реЗрдм рдкрд░ рдмрд╣реБрдд рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╕рдВрдХреАрд░реНрдг рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реА рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИред рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рдереЛрдбрд╝рд╛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЬрдЧрд╣ рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд▓рдЧрддреА рд╣реИред
CORBA AlarmIRP рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЙрдкрдХрд░рдг рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдХреЗ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рдЬрд┐рдирд╕реЗ рдореБрдЭреЗ рдирд┐рдкрдЯрдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 3GPP 3G TS 32.106-2 рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдУрдПрд╕рдПрд╕-рдЖрд░рд╕реА рдПрд░рд┐рдХреНрд╕рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рддрд░рд╣ рд╡рд░реНрдгрд┐рдд рд╣реИред NetAct Nokia рдФрд░ Huawei M-2000 рдХреЗ рд▓рд┐рдП, рдХреЛрдб рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдорд╛рдирдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдореЗрдВ рдЕрдВрддрд░ рд╣реЛрдЧрд╛ред рдореИрдВ рдЕрд▓рд╛рд░реНрдо рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдкрд╣рд▓реЗ рдХрднреА рдХреБрдЫ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдХреЛрд░рдмрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЦреБрдж рдХреЛ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдХреБрдЫ рд╡рд┐рд╡рд░рдг рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреВрдВрдЧрд╛ред
рдкреВрд░реЗ рдЖрд╡реЗрджрди рдХреЛ 3 рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- IOR рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
- рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рдВрджрд░реНрднрд┐рдд рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
- рдХреЙрд▓рд┐рдВрдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрд░реАрдХреЗ
рдЗрд╕рд▓рд┐рдП, рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, IOR рдХреЛ рджреЛ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
/var/opt/ericsson/blkcm/data/bulkcm.nameservice
рдФрд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░
http: // "рдорд╛рд╕реНрдЯрд░рд╣реЛрд╕реНрдЯ рдЖрдИрдкреА": 80 / ior / ExternalNameService.ior
рд╣рдо рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
private String readIOR() { String mastersvc = "/var/opt/ericsson/blkcm/data/bulkcm.nameservice"; File f = new File(mastersvc); BufferedReader br; String iorContents = null; try { br = new BufferedReader(new FileReader(f)); iorContents = br.readLine(); br.close(); } catch (IOException e) { e.printStackTrace(); } return iorContents; }
рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рджреА рдЧрдИ рд╡рд┐рдзрд┐ рд╣рдореЗрдВ IOR рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ NameService (CORBA рд╢рдмреНрджрд╛рд╡рд▓реА) рдХрд╛ рд▓рд┐рдВрдХ рджреЗрдЧреА, рдЬрд┐рд╕реЗ рд╣рдо рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░ IOR рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╕рд░рд▓: рд╣рдо рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рджреВрд╕рд░рд╛ рдЪрд░рдг ORB рдХрдиреЗрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг рд╣реИ:
public void createAlarmObj(){ org.omg.CORBA.Object rootObj = null; NamingContextExt rootNameCon = null; Properties props = new Properties(); props.put("org.omg.CORBA.ORBInitRef", "NameService=" + readIOR()); org.omg.CORBA.ORB orb = ORB.init(new String[0], props);
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЗрд╕рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ,
get_alarm_list рд╡рд┐рдзрд┐ рд╕реЗ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕реВрдЪреА рд╡рд╛рдкрд╕ рдорд┐рд▓ рдЬрд╛рддреА рд╣реИред рдпрд╣рд╛рдБ 3GPP рд╕реЗ рдЙрдирдХрд╛ рд╢рд╛рд╕реНрддреНрд░ рд╣реИ:
рдпрд╣ рддрд░реАрдХрд╛ рдЕрд▓рд╛рд░реНрдо рдЗрдирдлреЙрд░реНрдореЗрд╢рди рджреЗрддрд╛ рд╣реИред рдЕрдЧрд░ рдЭрдВрдбрд╛ рд╣реИ
рд╕рд╣реА рд╣реИ, рд╕рднреА рд▓реМрдЯреЗ рдЕрд▓рд╛рд░реНрдо рд╕реВрдЪрдирд╛рдПрдБ AlarmInformationSeq рдореЗрдВ рд╣реЛрдВрдЧреА
рдЬрд┐рд╕рдореЗрдВ 0.1 рдпрд╛ рдЕрдзрд┐рдХ рдЕрд▓рд╛рд░реНрдо рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ iter
рдмреЗрдХрд╛рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдзреНрд╡рдЬ FALSE рд╣реИ, рддреЛ рдХреЛрдИ рдЕрд▓рд╛рд░реНрдо рд╕реВрдЪрдирд╛ рдирд╣реАрдВ рд╣реЛрдЧреА
рдореЗрдВ рдЕрд▓рд╛рд░реНрдордЗрдиреНрдлреЙрд░реНрдореЗрд╢рдирд╕реЗрдХред IRPAgent рдХреЛ рдЙрдиреНрд╣реЗрдВ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
public void getActiveAlarms(){ BooleanHolder flag = new BooleanHolder(false);
рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА
рд╕рдВрд░рдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд▓рд╛рд░реНрдо рдХреА рдПрдХ рд╕реВрдЪреА рд╕реЗ рдпреБрдХреНрдд рдПрдХ
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ рдЬреЛ рддрдм рдХрдВрд╕реЛрд▓ рдореЗрдВ
рдЕрд▓рд╛рд░реНрдордкреНрд░рд┐рдВрдЯ (рдЕрд▓рд╛рд░реНрдо) рдкреНрд░рджрд░реНрд╢рд┐рдд
рдХрд░рддреА рд╣реИред
рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрдбрдИрд╡реЗрдВрдЯ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ
рд╣реЗрдбрд░ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ,
рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ
рдпреЛрдЧреНрдп_рдбреЗрдЯрд╛ рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред рдбреЗрдЯрд╛
рдирд╛рдо рдФрд░ рдореВрд▓реНрдп
рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд░рд┐рдХреЙрд░реНрдб рднреА рд╣реИред рдЦреЗрддреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рднреА рдорд╛рдирдХ рдореЗрдВ рд╣реИ:
const string NV_NOTIFICATION_ID = "рдП";
const string NV_CORRELATED_NOTIFICATIONS = "рдмреА";
const string NV_EVENT_TIME = "c";
const string NV_SYSTEM_DN = "d";
const string NV_MANAGED_OBJECT_CLASS = "e";
const string NV_MANAGED_OBJECT_INSTANCE = "f";
const string NV_SPECIFIC_PROBLEM = "i";
...
рдЕрдм рд╣рдо рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрджрд╛рд╣рд░рдг
рдЙрджрд╛рд╣рд░рдг рдФрд░
specific_problem рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ:
private void alarmPrint(StructuredEvent alarm){ String result = "" if (alarm.filterable_data != null) { for (Property filterableData: alarm.filterable_data) { String fieldName = filterableData.name; switch (fieldName){ case "f": result = result + filterableData.value.extract_string() + ";"; break; case "i": result = result + filterableData.value.extract_string(); break; } } } System.out.println(result); }
рдЕрдВрдд рдореЗрдВ, рдкрд░рд┐рдгрд╛рдореА рдорд╕реМрджреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ рдХреЛрдб:
рдкреВрд░реНрдг рдХреЛрдб import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Properties; import org.omg.CORBA.*; import org.omg.CORBA.ORBPackage.InvalidName; import org.omg.CosNaming.NamingContextExt; import org.omg.CosNaming.NamingContextExtHelper; import org.omg.CosNaming.NamingContextPackage.CannotProceed; import org.omg.CosNaming.NamingContextPackage.NotFound; import org.omg.CosNotification.EventBatchHolder; import org.omg.CosNotification.Property; import org.omg.CosNotification.StructuredEvent; import com.ericsson.irp.AlarmIRPSystem.GetAlarmList; import com.ericsson.irp.AlarmIRPSystem.InvalidParameter; import com.ericsson.irp.AlarmIRPSystem.NextAlarmInformations; import com.ericsson.irp.AlarmIRPSystem.ParameterNotSupported; public class AlarmClient { private com.ericsson.irp.AlarmIRPSystem._AlarmIRPOperations _alarmIrp = null; public static void main(String[] args) { AlarmClient ac = new AlarmClient(); ac.createAlarmObj(); ac.getActiveAlarms(); } private String readIOR() { File f = new File("/var/opt/ericsson/blkcm/data/bulkcm.nameservice"); BufferedReader br; String iorContents = null; try { br = new BufferedReader(new FileReader(f)); iorContents = br.readLine(); br.close(); } catch (IOException e) { e.printStackTrace(); } return iorContents; } public void createAlarmObj(){ org.omg.CORBA.Object rootObj = null; NamingContextExt rootNameCon = null; Properties props = new Properties(); props.put("org.omg.CORBA.ORBInitRef", "NameService=" + readIOR()); org.omg.CORBA.ORB orb = ORB.init(new String[0], props);
рд▓реЙрдиреНрдЪ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
java -cp .: / opt / ericsson / fm_core / classes / Alarmirp.jar AlarmClient
рдХреНрдпрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ: "рдкреНрд░рд╢рдВрд╕рдХ" рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЕрднреА рддрдХ рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ
NotificationIRP - рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛,
BulkCmIRP - рдПрдХ рдмрд╛рд╣рд░реА рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЖрджрд┐ред рддрдХрдиреАрдХ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╢рд╛рдпрдж, рдпрд╣ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╣реИред рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред рдзрдиреНрдпрд╡рд╛рдж!