టన్నెల్ ద్వారా రిజిస్ట్రీ పోర్టుకు కనెక్ట్ అవ్వండి, హ్యాండ్షేక్ ప్రారంభమవడం చూడండి, ఆపై JConsole అయినా సమయం ముగిసి ఆగిపోవడం చూడండి. ఇది జరగడానికి కారణం మొదటి TCP కనెక్షన్ నిర్వహణ కనెక్షన్ కాదు: అది ఒక అన్వేషణ. RMI రిజిస్ట్రీ ఒక హోస్ట్ మరియు రెండవ పోర్టును పేర్కొనే సూచనతో సమాధానం ఇస్తుంది, ఆపై JConsole చెప్పిన చోటికి వెళ్తుంది. టన్నెల్ సర్వర్ మొదటి పోర్టు వరకే చేరితే, లేదా సూచన సర్వర్ స్వంత స్థానిక నెట్వర్క్లో మాత్రమే ఉన్న చిరునామాను పేర్కొంటే, క్లయింట్ పైకి విజయవంతమైనట్లు అనిపించాక ఆగిపోతుంది.

అపోహ: ఒక తెరిచిన పోర్టు అంటే ఒక కనెక్షన్

RMI ద్వారా రిమోట్ JMX కనీసం రెండు ఎండ్పాయింట్లను కలిగి ఉంటుంది, వాటిని సిస్టమ్లోని వేర్వేరు భాగాలు ఎంచుకుంటాయి. రిజిస్ట్రీ పోర్టు మీరు క్లయింట్లో టైప్ చేసేది, అది నిజమైన కనెక్టర్ను వివరించే stubను అందించడానికి ఉంది. మొదటి విజయవంతమైన సాకెట్ను నిర్వహణ మార్గం తెరిచి ఉందని రుజువుగా తీసుకోవడం రెండు నిమిషాల నిర్ధారణను ఫైర్వాల్ టికెట్లతో నిండిన మధ్యాహ్నంగా మారుస్తుంది.

సర్వర్ వినేవారి జాబితా కాకుండా క్లయింట్ స్వంత లోపాన్ని చూడండి. హ్యాండ్షేక్ ప్రారంభమైన తర్వాత వచ్చే వైఫల్యం రెండవ కనెక్షన్ పూర్తికాలేదని చెబుతుంది, మొదటిది కాదు.

రిజిస్ట్రీ ఏమి తిరిగి ఇస్తుంది

stubలో ఒక చిరునామా మరియు పోర్టు ఉంటాయి, అవి కనెక్టర్ సృష్టించిన క్షణంలో క్రమబద్ధీకరించబడ్డాయి. అనేక ఇంటర్ఫేస్లు ఉన్న సర్వర్లో, స్థానిక నెట్వర్క్ నుండి చేరుకోగలిగే కానీ మీ నుండి చేరుకోలేని చిరునామాను స్టాక్ ఎంచుకుని ఉండవచ్చు. క్లయింట్కు తేడా తెలియదు; అది పొందిన విలువనే డయల్ చేస్తుంది, మరియు ప్యాకెట్ ఆ చిరునామా కోసం ఉన్న మార్గాన్ని అనుసరిస్తుంది, VPN క్లయింట్లో అది తరచుగా ఏదీ ఉండదు. రెండవ కనెక్షన్ ప్రయత్నించే క్షణం అదే.

వైఫల్యం పరిసరాల మధ్య అడపాదడపా సంభవించడానికి కారణం కూడా ఇదే: అదే సర్వర్ JMX కాన్ఫిగరేషన్లో ఎలాంటి మార్పు లేకుండా స్థానిక నెట్వర్క్ వినియోగదారుకు మరియు టన్నెల్ వినియోగదారుకు భిన్నంగా ప్రవర్తించవచ్చు.

రెండు పోర్టులు మరియు వాటిని స్థిరపరిచే రెండు లక్షణాలు

రిజిస్ట్రీ పోర్టు com.sun.management.jmxremote.port నుండి వస్తుంది, కనెక్టర్ను స్టాక్ కేటాయించేదానికి వదిలేయకుండా com.sun.management.jmxremote.rmi.port తో స్థిరపరచవచ్చు. క్లయింట్ మరియు సర్వర్ మధ్య ఫైర్వాల్ లేదా భద్రతా సమూహం ఉన్నప్పుడు రెండింటినీ స్పష్టంగా సెట్ చేయండి, ఎందుకంటే ఊహించలేని రెండవ పోర్టును ముందుగానే అనుమతించలేము, దానిని కలుపుకోవడానికి తెరిచే విస్తృత పరిధి ఒక విలువను స్థిరపరచడం కంటే అధ్వాన్నం.

ఆపై సర్వర్లో ss -ltn లేదా netstat -an ఉపయోగించి రెండు పోర్టులు వినిపిస్తున్నాయా, ఏ చిరునామాలపై ఉన్నాయా నిర్ధారించండి. loopbackకు కట్టివేసిన శ్రోత స్థానిక అమరికకు మాత్రమే సరైనది, దీనికి ఉపయోగపడదు.

ప్రకటించిన పేరు తప్పు ఉన్నప్పుడు

రిమోట్ సూచనలో కనిపించే హోస్ట్ పేరును java.rmi.server.hostname నిర్ణయిస్తుంది. ఇది stub ఏమి ప్రకటిస్తుందో ప్రభావితం చేస్తుంది; ఇది స్వయంగా ప్రతి శ్రోతను ఒక ఇంటర్ఫేస్కు కట్టివేయమని ఆదేశం కాదు, అందుకే దాన్ని సెట్ చేయడం ఎప్పుడూ ఆశించిన ఒకే పోర్టు ప్రవర్తనను ఇవ్వదు. దాన్ని సెట్ చేయండి, ప్రక్రియను పునఃప్రారంభించండి, ఆపై stub నిజంగా ఏమి కలిగి ఉందో ధృవీకరించండి. క్లయింట్ పరిష్కరించగలిగే, టన్నెల్ ద్వారా చేరుకోగలిగే పేరు లేదా చిరునామాను ఎంచుకోండి, stub తిరిగి నిర్మించబడేలా ప్రక్రియను పునఃప్రారంభించండి.

కంటైనర్ నెట్వర్క్లు దీన్ని మరింత దిగజార్చుతాయి, ఎందుకంటే ప్రక్రియ చూసే చిరునామా కంటైనర్ వెలుపల నుండి ఎవరూ రూట్ చేయలేని అంతర్గత చిరునామా కావచ్చు. ప్లాట్ఫారమ్ను ఎంచుకోనివ్వకుండా ఉద్దేశించిన హోస్ట్ పేరును స్పష్టంగా ప్రచురించండి.

VPNకు బదులు SSHతో టన్నెల్ చేస్తే, అదే సమస్య మరో వేషంలో కనిపిస్తుంది: రిజిస్ట్రీ పోర్టును మాత్రమే పంపితే రెండవ ఎండ్పాయింట్ మీ క్లయింట్ చేరుకోలేని చిరునామా వైపే ఉంటుంది. రెండు పోర్టులను పంపండి మరియు ప్రకటించిన పేరు క్లయింట్ స్థానికంగా చేరుకోగలిగే దానికి పరిష్కారమవడం నిర్ధారించండి.

సులభతరం చేయడానికి నిర్వహణ భద్రతను ఆఫ్ చేయవద్దు

ప్రామాణీకరణ మరియు TLSను ఆఫ్ చేసే స్నిప్పెట్లు సులభంగా దొరుకుతాయి మరియు తర్వాత రద్దు చేయాల్సిన విధంగా కనెక్షన్ను పని చేయిస్తాయి. రిమోట్ JMX అనేది అది పరిశీలించే ప్రక్రియతో సమానమైన అధికారాలు ఉన్న నిర్వహణ ఇంటర్ఫేస్; దాని యాక్సెస్ నియంత్రణలను ఉంచండి, క్లయింట్ ఆధారాలు చూపించలేకపోతే దాన్ని సరిచేయండి.

ఎండ్పాయింట్లు సరైన తర్వాత, తర్వాత మీరు చూసే లోపాన్ని భద్రపరచండి. ట్రస్ట్ స్టోర్ లేదా ఖాతా నుండి తిరస్కరణ చేరుకోలేని కనెక్టర్ కంటే ఆలస్య దశ, అంటే నెట్వర్క్ పని పూర్తయింది.

సంబంధిత వ్యాసాలు